Моя функция в фоновом режиме для моего расширения Chrome приведена ниже.Он отлично работает и отправляет данные JSON на сервер.Сервер получает это и обрабатывает это также хорошо.Проблема в том, что сервер сразу видит другой такой же запрос.Браузер в этот момент получает ошибку «Uncaught SyntaxError: Неожиданный конец ввода JSON».
function send_to_logger_survey(request, sender, sendResponse)
{
var myArray=[];
var jsonResponse2;
myArray.push(email);
myArray.push(request.values); //contains chosen values
var json = JSON.stringify(myArray);
var url=szHost;
url=url.concat('/Subit_backend/logger_survey');
var xhr = new XMLHttpRequest();
xhr.onerror = function() { alert('error'); };
xhr.open('POST', url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.setRequestHeader("X-Requested-With",'xmlhttprequest');
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr.onload = function (){
if((xhr.status === 200)&&(xhr.readyState===4)) {
var jsonResponse2 = JSON.parse(xhr.responseText);
sendResponse({task: jsonResponse2});
return true; //The sendResponse callback is only valid if used synchronously, or if the event handler returns true to indicate that it will respond asynchronously.
}
};
xhr.send(json);
}
Я не думаю, что мой код JavaScript фактически выполняет два вызова.Я думаю, возможно, что после того, как мой код Codeigniter получает и обрабатывает запрос, отправляется вторая копия буфера.Или приведенный выше код отправляет две копии одного и того же буфера?Есть идеи, как отладить эту проблему?