#javascript #ajax #http-post
#javascript #ajax #http-post
Вопрос:
Я отправляю POST-запрос с API на JavaScript, и я уже сделал много POST-запросов с помощью этого следующего метода, но теперь это показывает ошибку: SyntaxError: неожиданный токен W в JSON в позиции 0
Вот мой код-
function updateAlertSetting(data_json, callback){
var firebase_token = getCookie("firebase_token");
if(firebase_token===null){
window.location.href="login.html";
return;
}
var base_64_firebase_token = btoa(firebase_token);
console.log(typeof data_json); // Object
console.log(data_json); // prints the data_json
$.ajax(
{
type: 'POST',
url: getApiURL(28),
data: {
"alertSetting_value": data_json.alertSetting_value,
"alertSetting_name": data_json.alertSetting_name,
"firebase_token": data_json.firebase_token
},
headers: { "Authorization": "Basic " base_64_firebase_token },
success : function(newData){
callback(newData);
},
error: function (xhr,ajaxOptions,throwError){
console.log(throwError);
console.log("Error!!!");
}
}
);
}
Комментарии:
1. Проверьте вкладку devtools network, чтобы проверить данные запроса / ответа
2. Вы обязательно должны опубликовать свой ответ
3. @0xc14m1z я уже выполняю POST-запрос. Пожалуйста, посмотрите на это.
4. @jro Что вы хотите проверить или что я должен рассказать вам подробнее о проблеме?
5. Перейдите на вкладку сеть в devtools, найдите запрос и добавьте код ответа и данные ответа (если таковые имеются) к вашему вопросу
Ответ №1:
Я сделал это с помощью следующего кода:
var xmlhttp;
try{
xmlhttp = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
//Browser doesn't support ajax
alert("Your browser is unsupported");
}
}
}
if(xmlhttp){
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState===4 amp;amp; xmlhttp.status===200) {
callback(xmlhttp.responseText);
}
if(xmlhttp.status === 404){
alert("It couldn't connect to the server.");
}
}
xmlhttp.open("POST",getApiURL(28),true);
xmlhttp.setRequestHeader("Authorization","Basic " base_64_firebase_token);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("alertSetting_value=" data_json.alertSetting_value "amp;alertSetting_name=" data_json.alertSetting_name "amp;firebase_token=" data_json.firebase_token);
}
Теперь это работает, и спасибо @jro.