7

我使用backbone.js 的模型。当我保存模型时,它会将 HTTP OPTIONS 方法发送到 firefox 上的服务器端,但会发送带有 safari 的 HTTP POST 方法。

我知道这不是关于backbone.js 的问题,而是关于CORS 的。我只会在服务器端检查方法、GET、POST、PUT 和 DELETE,我不会使用 HTTP OPTIONS 方法。

我请求的 url 是我的 api:api.foo.com 和从 bar.com 请求的 api

那么,我如何在所有浏览器中控制使用 HTTP POST 而不是 OPTIONS 请求我的 api.foo.com?以及如何与来自任何其他域的所有请求共享 api.foo.com 的内容?

注意: 我已经将响应的标头从服务器端更改为: Access-Control-Allow-Origin: *

4

1 回答 1

7

OPTIONS 请求实际上就是 CORS 规范中所谓的preflight 请求。Web 浏览器使用此预检请求来检查服务器在什么条件下会接受来自相应来源的请求。如果对预检请求的响应令人满意,浏览器将发送实际请求。

所以为了遵守这个规范,你需要你的服务器重现预检请求处理的步骤

于 2011-12-01T14:15:20.007 回答