Не получается переделать 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 = ""; } }); } }) } |
Если не запутался то как то так.
jQuery(function ( $ ) { $('.btnReview').click(function ( e ) { $('.Item1').text() === 'product1' && $.ajax({ type: 'POST', url: 'http://smktesting.herokuapp.com/api/reviews/1', data: { 'rate': $(':radio[name=star]:checked').val(), 'text': $('#content').val() }, headers: { 'Authorization': 'Token ' + jsonProductLogin.token }, success: function () { $('#content').val(''); } }); return false; }); }); |
dd_smol,
Спасибо, помогло |
Часовой пояс GMT +3, время: 08:14. |