无法在ExtJS 6中发出CORS请求

时间:2018-11-13 08:05:09

标签: ajax extjs cors

因此,我的本地主机带有一个页面,该页面将请求发送到远程站点。我尝试这样做:

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!!!");
    }
});

因此,我遵循了数十个线程并设置了这些参数-corsuseDefaultXhrHeader等,但无济于事。

但是,如果我在邮递员中建立了相同的请求(对相同的remoteaddress.com的请求),那就可以了。

那么,我在做什么错了,我该如何解决?

2 个答案:

答案 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 *