代码之家  ›  专栏  ›  技术社区  ›  TamerB

Ajax发布到节点。通过Nginx的js没有得到正确的响应

  •  0
  • TamerB  · 技术社区  · 7 年前

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

    $.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
    

    这不是成功或失败时的预期反应。

    此外,“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));
            }
        });
    

    但还是一样的 No 'Access-Control-Allow-Origin' header is present on the requested resource 同上。

    "No 'Access-Control-Allow-Origin' header is present on the requested resource" 然而,我发现我在这里接受的答案更直接、更清楚。

    1 回复  |  直到 7 年前
        1
  •  0
  •   88jayto    7 年前

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

    CORS issue in Jquery Ajax Post