因此,我的本地主机带有一个页面,该页面将请求发送到远程站点。我尝试这样做:
Ext.Ajax.cors = true;
Ext.Ajax.request({
url: "http://remoteaddress.com",
method: "GET",
headers: {
"Access-Control-Allow-Origin": "*"
},
cors: true,
useDefaultXhrHeader: false,
success: function (result, request) {
console.log("success!!!");
}
});
因此,我遵循了数十个线程并设置了这些参数-cors
,useDefaultXhrHeader
等,但无济于事。
但是,如果我在邮递员中建立了相同的请求(对相同的remoteaddress.com的请求),那就可以了。
那么,我在做什么错了,我该如何解决?
答案 0 :(得分:1)
带有OPTIONS方法的请求是预检请求。
来自msdna:
CORS预检请求是一种CORS请求,用于检查是否 了解CORS协议。
这是一个OPTIONS请求,使用三个HTTP请求标头: 访问控制请求方法,访问控制请求标头和 原始标头。
在需要时,浏览器会自动发出预检请求。 在通常情况下,前端开发人员无需精心设计 要求自己。
网络服务器必须用标头回答它,以允许浏览器执行实际的请求。
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: localhost
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
答案 1 :(得分:-1)
这是一个快速解决方法
打开终端并运行此代码
open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_sess_1" --disable-web-security
然后仅使用该新的chrome窗口进行开发,将网站托管在某个地方就不会再引起问题了
*请注意,这是MacOs chrome *