Ошибка синтаксиса: неожиданный токен W в JSON в позиции 0

#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.