尝试在IE9中进行跨域发布调用



我正在尝试在IE9中进行跨域发布调用 以下是我的代码:

$.support.cors = true;
var data = {"userid":uid,"email":email,"password":password};
if (isIE () && isIE () <= 9) {
    $.ajax({
        type: 'post',
        crossDomain: true,
        url: postUrl,
        cache:false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',
        data:data,
        jsoncallback:'localJsonpCallback',
        jsonp:false,
        success: function (data) {
            console.log(data);
        },
        error: function (status){
            console.log(status);
            $("#error").html("Incorrect E-mail Entered. Please Re-Enter Your E-mail "); 
        }
    });
}
function localJsonpCallback(json) {
    if (!json.Error) {
        alert("success");
    }
    else {
        alert(json.Message);
    }
}

但是,当我查看小提琴手中的调用时,我收到 405 错误,并且请求标头显示 GET:

GET postUrl?format=json&userid=123456&email=test%40test.com&password=Password1&_=1434232587917 HTTP/1.1

为什么如果我发布一个帖子,在请求标头中显示 Get?我的调用是否有语法错误?

您的请求看起来不错,从您描述的服务器响应来看,这是服务器的"问题",HTTP 状态代码 405 表示方法错误,即服务器不允许POST请求。但是它仍然很奇怪,它会将这些转换为GET,但我仍然认为这是因为服务器实现,而不是您的错误。您可以尝试使用像curl这样的工具,看看您得到什么响应标头,但如果它是服务器错误/错误,则无济于事。

如果您无法控制服务器,剩下的唯一事情就是联系所有者并要求他们允许 post 请求或发送GET请求,尽管发送非编码的登录数据真的很糟糕。

相关内容

  • 没有找到相关文章

最新更新