作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经在服务器上设置了跨源资源共享(使用 CrossOriginFilter 的 Jetty),它在 IE8 和 Firefox 上完美运行。在 Chrome 上,它只是……没有。
$.ajax({ url : crossOriginURL,
type : "GET",
error : function(req, message) {
alert(message);
},
dataType : "json" } );
错误函数被调用,带有有用的消息“error”。它似乎在发出请求,但没有您期望的任何 header 。如果 URL 来自同一来源,则它可以正常工作。
最佳答案
我已经这样解决了我的问题:
将此添加到您的 PHP 代码中:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");
或者将这些 header 添加到您的响应中。
问题:浏览器在您的主要请求之前向服务器询问选项,以检查该站点是否有允许与不同来源通信的选项,然后如果是,他们会执行您的 POST 或 GET 请求。
编辑:试试这个(不用你的黑客)看看你是否正在接收数据......
$.ajax({ url : crossOriginURL,
type : "GET",
error : function(req, message) {
alert(message);
},
success : function(data) {
alert(data);
},
dataType : "text"} );
关于javascript - CORS 不适用于 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136140/
我是一名优秀的程序员,十分优秀!