Ajax POST(已启用CORS)始终错误

时间:2017-08-29 17:49:34

标签: javascript jquery ajax cors

我有以下功能来执行ajax发布请求

function POST(url, data) {
    $.ajax({
        'type' : "POST",
        'url' : url,
        'data' : data,
        headers : {
            'Access-Control-Request-Headers' : '*'
        },
        success : function(msg) {
            //alert('in success');
            //alert(msg);
            return msg;
        },
        error : function (xhr, status, error) {
            //alert(JSON.stringify(xhr));
            return 'error';
        }
    });
}

该函数总是返回,并且我的CORS配置有错误。

我得到的错误总是

  

{ “readyState的”:0 “状态”:0 “状态文本”: “错误”}

我在谷歌浏览器中尝试了同样的请求,并启用了Allow-Control-Allow-Origin扩展程序并且请求很顺利,所以我相信我的代码没有正确配置CORS完全是个问题。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用以下方法

function POST(url, data) {
    $.ajax({
        method : "POST",
        url : url,
        data : data,
        crossDomain: true,
        beforeSend: function(xhrObj){
            //xhrObj.setRequestHeader("Content-Type","application/json");
            //xhrObj.setRequestHeader("Accept","application/json");
         xhrObj.setRequestHeader("Access-Control-Allow-Headers","x-requested-with");
        },
        success : function(msg) {
            //alert('in success');
            //alert(msg);
            return msg;
        },
        error : function (xhr, status, error) {
            //alert(JSON.stringify(xhr));
            return 'error';
        }
    });
}

如果您使用的是jquery 1.5.2+,那么您需要添加以下标题

Access-Control-Allow-Headers: x-requested-with

答案 1 :(得分:0)

您确定CORS是否接受后端的所有来源?

再见:)