我正在使用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
}
});
有谁知道我可能会缺少什么?
谢谢。
答案 0 :(得分: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
);
}
}