Ajax 405(不允许的方法)跨域问题

时间:2013-11-19 07:47:12

标签: javascript jquery ajax cross-domain

我正在尝试从localhost运行此脚本,但它出现错误 405(方法不允许)

代码

$(document).ready(function(){

    $.ajax({
        url:'http://some.url/',
        type:'post',
        //crossDomain: true,
        data:'{id:"49"}',
        contentType: "application/json; charset=utf-8",
        dataType:'jsonp',

            success: function(responseData, textStatus, jqXHR) {
                alert('right');
                var value = responseData.someKey;
                console.log(value);
            },
            error:function() {
                alert("Sorry, I can't get the feed");  
            }
    });
});

我尝试使用crossDomain:true$.support.cors = true,但没有用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这与CORS无关,HTTP 405意味着不允许使用您的HTTP方法,例如GET,POST等。

根据Chrome开发工具,只允许使用POST和OPTIONS HTTP方法。

Chrome dev tools response headers

要使用jQuery.ajax()发送POST请求,请使用以下命令:

$.ajax('url', {
    // other settings here
    type: 'POST'
}

您也可以使用jQuery.post()包装器方法执行相同的操作。

请注意,相关的特定网站尚未设置跨域支持,因此,如果您需要访问此网站,则需要让网站修复此问题,否则您需要使用服务器作为代理。