0

所以我知道,如果我的 Ajax 调用中有自定义标头,浏览器会进行预检以确保资源可用。我的问题是我的 REST 服务使用 Http-Authorization 来保证安全性,但是在 OPTIONS 调用中,这个标头没有被传入,即使它是通过 beforeSend() 添加的。

我必须回复未经身份验证的选项吗?

4

1 回答 1

2

我相信该OPTIONS请求是对 CORS(跨源资源共享)的预检。我认为您无法控制OPTIONS请求,您的浏览器会自动发出请求。

另外,我不一定认为这是一个问题。您可以在白名单的基础上实施 CORS 回复标头。比如说,允许域 X 和 Y,但不允许域 Z。如果您要求OPTIONS来自 X,您可以回复“允许:X”。Y 也是如此。但如果你来自 Z,你会说“不允许”。

解决这个问题的方法,以及与旧浏览器(DomainRequest任何人?)的向后兼容性,您可以使用 JSONp,它不是很好,但更简单。

于 2012-10-31T23:12:53.247 回答