Javascript AJAX SyntaxError:在 ajax + node.js 中的位置 0 处出现意外的 JSON 标记 E

Tru*_*ran 2 javascript ajax

我正在向 node.js 服务器发出包含多个对象的 AJAX POST 请求。尽管我的服务器发送了状态代码200,但我仍然收到错误消息Javascript AJAX SyntaxError: Unexpected token E in JSON at position 0。这是我的 POST 请求:

     var company_id = "some_generic_id";
     var president  = "obama";

     var postData = {
       company_id   : company_id,
       president    : president
     };


     $.ajax({
       type: "POST",
       url: '/api/test_link',
       data: JSON.stringify(postData),
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       data: postData,
       success: function(data, status) {
         console.log('it worked!')
       },
       error: function(request, status, error) {
         console.log(request);
         console.log(status);
         console.log(error);
       }
     });
Run Code Online (Sandbox Code Playgroud)

这是我的服务器端代码:

app.post('/api/test_link', function(req, res) {

            console.log('--post data--');
            console.log(req.body);
            /*
                prints out:
                --post data--
                { company_id: 'company_id', president: 'obama' }

            */  
            res.sendStatus(200);

    });
Run Code Online (Sandbox Code Playgroud)

这是我的网络选项卡中的图像:

网络选项卡

有谁知道我可能会遗漏什么或为什么我的 postData语法无效?

Max*_*kyi 5

关于 ajax 调用的文档说明了dataType选项:

您期望从服务器返回的数据类型。“json”:将响应评估为 JSON 并返回一个 JavaScript 对象。

由于您没有从服务器返回任何数据,因此您的空数据被解析为 JSON,从而产生错误。dataType: "json"如果您没有返回任何数据,只需删除即可。