问题描述
我已经在服务器上设置了跨域资源共享(Jetty 使用 CrossOriginFilter),它在 IE8 和 Firefox 上完美运行.在 Chrome 上,它只是......没有.
I've set up Cross-Origin Resource Sharing on a server (Jetty using the CrossOriginFilter) and it works perfectly on IE8 and Firefox. On Chrome, it just ... doesn't.
$.ajax({ url : crossOriginURL,
type : "GET",
error : function(req, message) {
alert(message);
},
dataType : "json" } );
错误函数被调用,并带有有用的消息错误".它似乎正在发出请求,但没有您期望的任何标头.如果 URL 来自同一来源,则可以正常工作.
The error function is invoked, with the helpful message "error". It seems to be making the request, but without any of the headers you'd expect. If the URL is from the same origin, it works fine.
推荐答案
最后对我有用的是 xhr.setRequestHeader('Content-Type', 'text/plain');
服务器需要添加Access-Control-Allow-Headers: Content-Type
来避免这个问题.
The server needs to add Access-Control-Allow-Headers: Content-Type
to avoid this problem.
十年后,我又回到了我自己的问题上.我不知道这是好事还是坏事.
I am coming back to my own question a decade later. I don’t know if this is a good thing or a terrible thing.
这篇关于CORS 无法在 Chrome 上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!