真的被这个bug弄糊涂了。当我尝试(使用jQuery.ajax)进行跨域PATCH请求时,所有版本的IE,甚至是支持CORS的IE,都会抛出"拒绝权限"错误。所有其他方法(甚至PUT)都能正常工作,但PATCH会在send()调用中立即触发错误。
考虑到IE的后期版本支持CORS,并且应该支持所有方法类型,CORS+PACH会导致错误的原因是什么?
(是的,Access Control Allow Methods设置为GET, POST, DELETE, PATCH, PUT, OPTIONS
,所以我认为这不是问题所在。)
IE需要一个P3P策略头才能使CORS正常工作。试试这个:
快速解决方案尝试
确保在从服务器发送的标题中找到:
P3P: CP="NON DSP LAW CUR ADM DEV TAI PSA PSD HIS OUR DEL IND UNI PUR COM NAV INT DEM CNT STA POL HEA PRE LOC IVD SAM IVA OTC"
不太快的解决方案
阅读这篇文章:制定一个P3P策略,使IE行为