【问题标题】:jQuery - Send a cross-domain PUT/DELETE requestjQuery - 发送跨域 PUT/DELETE 请求
【发布时间】:2015-07-10 08:10:24
【问题描述】:

我有 2 个子域:ma​​in.example.comapi.example.com

两者都坐在同一台机器上。

我正在尝试从 ma​​in.example.comapi.example.com 发送 PUT/DELETE 请求,但它不会让我来做。

响应标头,来自 api.example.com

Access-Control-Allow-Origin: http://main.example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS

这是提出请求的方式:

$.ajax({
    url: 'https://api.example.com/script.cgi',
    type: 'PUT',
    success: function(result) {
        // Do something with the result
    }
});

它给我一个错误: 跨域请求被阻止:同源策略不允许读取位于https://api.example.com/script.cgi 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。

我该如何解决这个问题?我浪费了一整天的时间试图修复它,但没有成功。

附:在 chrome 和 firefox 中不起作用。

【问题讨论】:

标签: jquery ajax rest http cors


【解决方案1】:

请务必在预检 (OPTIONS) 响应中添加 CORS 标头在 PUT 响应中。

我测试了您的设置(仅 Access-Control-Allow-OriginAccess-Control-Allow-Methods),只要两个响应具有 CORS 标头,一切正常(例如,如果我从 PUT 响应中删除它们,我会收到您的错误)。

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2016-10-02
    • 2017-04-29
    • 2010-11-06
    相关资源
    最近更新 更多