jQuery Ajax OPTIONS调用中的自定义标头

时间:2012-10-31 22:49:32

标签: javascript jquery ajax http rest

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

我是否必须回复未经身份验证的OPTIONS?

1 个答案:

答案 0 :(得分:2)

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

另外,我不一定相信这是一个问题。您可以在白名单的基础上实现CORS回复标头。比如说,允许域X和Y,但不允许Z.如果你要求OPTIONS来自X,你可以回复'allowed:X'。同样对于Y.但如果你来自Z,你会说'不允许'。

解决这个问题,并且为了向后兼容旧版浏览器(DomainRequest任何人?)你可以使用JSONp,它不是那么好但更简单。