我正在使用 AJAX 向我的 node.js 服务器发出 HTTP 请求。但是,我的 AJAX 请求不断返回错误 SyntaxError: Unexpected token E in JSON at position 0
(服务器端没有返回错误)。
在浏览其他 SO 问题时,我发现解决方案是在我的数据对象上使用 JSON.stringify()
..但我仍然遇到相同的错误:
var postData = {
company_id: 'cid',
credentials:
{ first_name: 'van',
last_name: 'jones',
phone_number: '1035191043',
email: 'van.jones@gmail.com'},
company:
{ company_name: 'cnn',
company_email: 'info@cnn.com',
company_phone_number: '2800231374',
company_notes: '' },
shipping_address:
{ addr_1: 'addr1',
addr_2: 'addr2',
city: 'city',
state: 'state',
zip: 'zip' },
billing_address:
{ addr_1: 'addr1',
addr_2: 'addr2',
city: 'city',
state: 'state',
zip: 'zip' },
some_bool: true,
another_bool: true,
hostname: 'localhost'
}
$.ajax({
type: "POST",
url: 'some_url',
data: JSON.stringify(postData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status) {
console.log('success')
},
error: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
// returns SyntaxError: Unexpected token E in JSON at position 0
}
});
有人知道我可能会错过什么吗?
谢谢。
最佳答案
根据我的经验,此类信息总是会在服务器端带来一些麻烦(我知道你说没有,但仍然..),例如SQL 查询错误。尝试将类似的代码合并到您的错误处理函数中。它可能会帮助您解决问题。
error: function(xhr) {
try {
var response = JSON.parse(xhr.responseText);
console.log('Success');
console.log(response);
}
catch (e) {
var response = xhr.responseText;
console.log(
'There was an error: \n -> '
+ e + '\n'
+ 'Complete server response: \n -->'
+ response
);
}
}
关于JavaScript AJAX 语法错误 : Unexpected token E in JSON at position 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317778/