Javascript AJAX SyntaxError:位于0的JSON中的意外标记E.

时间:2016-12-25 00:03:14

标签: javascript jquery json ajax

我正在使用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
  }
});

有谁知道我可能会缺少什么?

谢谢。

1 个答案:

答案 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
    );
  }
}