NodeJS expressJs Server不会收集JSON数据

时间:2017-07-10 13:03:29

标签: jquery json node.js ajax

我的ajax请求看起来像这样

$.ajax({
    url: baseUrl,
    type: 'POST',
    data: JSON.stringify(sendData),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function (msg) {
        alert(msg);
    }
});

其中baseUrl是一个字符串,sendData是要发送的对象。

我的问题是我没有按预期在服务器中收到我的数据。我在我的服务器中使用nodeJs(带有body-parser的expressJs来解析请求中的JSON)。

但是,当我使用Chrome商店中的Advanced Rest Client Application时,我会按预期获得数据。我认为我的客户端代码是错误的。

2 个答案:

答案 0 :(得分:0)

通常是跨域问题。是baseURL和html页面在同一个域上?

答案 1 :(得分:0)

我明白了这个问题。

请求跨域资源时,Web浏览器以OPTIONS作为http方法发送虚拟请求,以检查服务器是否支持跨域请求。此请求称为"预检"。在我的情况下,我发送了一个401,用于请求体中没有包含authKey的任何请求。因此,当Chrome执行第一次预检请求时,它得到了错误的响应。所以Chrome没有尝试第二次请求。

我通过设置Access-Control-Allow-Origin解决了这个问题  每当服务器收到*请求时,在响应标头中为OPTINS