通过Nginx向Node.js发送的Ajax帖子未获得正确响应

通过Nginx向Node.js发送的Ajax帖子未获得正确响应,node.js,ajax,nginx,Node.js,Ajax,Nginx,我正试图通过nginx向node.js微服务发送一个ajax post请求。要求如下: $.post('http://localhost:80/api/signup', formData, function( data, status) { console.log(JSON.stringify(data)); console.log(JSON.stringify(status)); }).done(function(data, status) {

我正试图通过nginx向node.js微服务发送一个ajax post请求。要求如下:

$.post('http://localhost:80/api/signup', formData, function( data, status) {
    console.log(JSON.stringify(data));
    console.log(JSON.stringify(status));
        }).done(function(data, status) {
            alert( "second success" );
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
        })
        .fail(function(data, status) {
            console.log('error');
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
        })
        .always(function(data, status) {
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
            console.log('fiished');
        });
请求到达微服务。但响应如下(始终为误差函数):

“数据”始终是:

{"readyState":0,"status":0,"statusText":"error"}
error
“状态”始终是:

{"readyState":0,"status":0,"statusText":"error"}
error
这不是成功或失败时的预期反应。 我怎样才能解决这个问题

此外,“formData”参数在提交后显示为url上的查询。我怎样才能阻止它

更新*

我还尝试添加
event.preventDefault()但现在它给了我以下信息:

 XMLHttpRequest cannot load http://localhost:3000/api/signup. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
{"readyState":0,"status":0,"statusText":"error"}
我也尝试过:

$.ajax({  
        type: "POST",  
        url: "http://localhost:3000/api/signup",  
        data: JSON.stringify(formData),  
        success: function(dataString) {  
            console.log(JSON.stringify(dataString));
        }, error: function(error) {
            console.log(JSON.stringify(error));
        }
    });
但是获得了与上述相同的
请求的资源上不存在“访问控制允许来源”标题

更新
关于这个问题,有一个有效的、可能更详细的答案。但是,我发现我在这里接受的答案更直接、更清楚。

您是从浏览器还是本地主机执行ajax请求?如果从浏览器执行,则可能会出现问题。如果您希望能够从浏览器执行该ajax请求,则应该修改服务器配置/代码以允许跨源HTTP请求


这与您的问题类似

听起来您并没有阻止表单正常提交(即
event.preventDefault()
)现在它给了我
不存在“访问控制允许原点”标题
error@Phil请阅读问题更新。我更新了我的后端,并在请求中添加了contentType,删除了formData的JSON.stringify(),这可能是重复的。现在它起作用了。谢谢@88jayto