Показать сообщение отдельно
  #1 (permalink)  
Старый 22.09.2016, 12:24
Аспирант
Отправить личное сообщение для Sokoljr Посмотреть профиль Найти все сообщения от Sokoljr
 
Регистрация: 27.06.2016
Сообщений: 68

Не получается переделать AJAX запрос с js на jQuery
есть функция, при нажатии на кнопку, отправляются комментарии на сервер, на чистом JavaScript работает, на jQuery не работает...

JS
function SubmitReviewForItem() {
    var submitReview = document.querySelector(".btnReview");
    submitReview.addEventListener("click", function () {
        var review = document.querySelector("#content").value;
        var star = document.getElementsByName('star');
        for (var i = 0; i < star.length; i++) {
            if (star[i].type == "radio" && star[i].checked) {
                var rate = star[i].value
            }

        }
        var reviews1 = "rate=" + rate + "&text=" + review;
        if (document.querySelector(".Item1").innerHTML === "product1") {
            var xhrPostReviewProd1 = new XMLHttpRequest();
            xhrPostReviewProd1.open('POST', 'http://smktesting.herokuapp.com/api/reviews/1', true);
            xhrPostReviewProd1.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            xhrPostReviewProd1.setRequestHeader('Accept', "application/json");
            xhrPostReviewProd1.setRequestHeader('Authorization', 'Token ' + jsonProductLogin.token);
            xhrPostReviewProd1.onreadystatechange = function () {
                if (this.readyState === 4) {
                    xhrPostReviewProd1.onload = function () {
                        document.querySelector("#content").value = "";
                    }
                }
            };
            xhrPostReviewProd1.send(reviews1);
        } 
    })
}




jQuery

по поводу нахождения селекторов пока роли не играет, просто не менял еще на jQuery

function SubmitReviewForItem() {
	var submitReview = document.querySelector(".btnReview");
    submitReview.addEventListener("click", function () {
        var review = document.querySelector("#content").value;
        var star = document.getElementsByName('star');
        for (var i = 0; i < star.length; i++) {
            if (star[i].type == "radio" && star[i].checked) {
                var rate = star[i].value
            }
		}
		var reviews1 = {
	        "rate=": rate,
            "text=": review
	    };
		jsonStr = JSON.stringify(reviews1);
        if (document.querySelector(".Item1").innerHTML === "product1") {
        	$.ajax ({
	            beforeSend: function(xhr) {
	            	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
					xhr.setRequestHeader('Accept', 'application/json');
				    xhr.setRequestHeader('Authorization', 'Token ' + jsonProductLogin.token);
				},
				type: "POST",
	            url: urlMain + "api/reviews/1",
	            data: jsonStr,
	            processData: true,            
	            dataType: "json",
	            success: function (data) {
                        document.querySelector("#content").value = "";
                }
            });
        } 
    })
}
Ответить с цитированием