2017-01-16 311 views
1

我正在尝试将一个axios get-request从一个spa应用程序创建为一个应该全部为CORS请求设置的python falcon服务器。我提供以下标题我的要求:制作axios请求被cors阻止

const getHeaders = { 
    headers: { 
    'Access-Control-Expose-Headers': 'X-json', 
    'Access-Control-Allow-Headers': '*', 
    'Access-Control-Allow-Origin': '*', 
    'Access-Control-Request-Method': 'get', 
    'Access-Control-Request-Headers': 'X-custom-header', 
    'Content-Type': 'application/json', 
    Accept: 'application/json', 
    }, 
}; 

有很多东西那里,因为我已经通过了一堆线程已经试图寻找一个解决的清除,但似乎没有为我工作。

在使用JavaScripts获取api和使用chrome插件在浏览器上禁用cors之前,我设法向这个服务器发出了请求。

我已经打了一个砖墙现在,任何帮助表示赞赏。我正在使用webpack-dev-server进行开发,但我也有一个快速安装的生产环境,我试图设置这些相同的头文件,但是问题重复。

谢谢!

+0

'访问控制'标题是**响应**标题。你不应该在请求中提供它们。 – Quentin

+0

'getHeaders'意味着你正在做一个GET请求,你为什么要设置一个'Content-Type'?没有请求主体来描述内容。 – Quentin

+0

“python falcon server”/“我正在使用webpack-dev-server进行开发,但我也有一个生产快速设置,我尝试设置这些相同的头文件以便快速使用” - 如果您有在Express或Webpack Server上执行CORS时遇到问题,那么您可以尝试提出有关该问题的问题。你应该在[mcve]中包含你的Python/Webpack/Express代码。您还应该引用您在浏览器控制台中获得的确切错误消息。有相当多的CORS相关的错误。你应该清楚哪些URL(在错误中提到)是指哪些服务器。 – Quentin

回答

0

CORS允许在服务器上设置原点,而不是客户端。您需要在服务器上设置这些标头,或者创建自己的服务器以联系Python服务器,然后提供请求。

+0

经过大量的搞乱 - 我得出以下结论: ** 1)**您的后端必须支持CORS(我正在使用laravel,我使用这个[** https://github.com/barryvdh /laravel-cors***(https://github.com/barryvdh/laravel-cors) )和 ** 2)**对我而言,Axios配置工作是: axios.defaults.headers.common ['Content-Type'] ='application/x-www-form-urlencoded,application/json' axios.defaults.headers.common.crossDomain = true axios.defaults.headers.common ['Access-Control-Allow -Origin'] ='*' axios.defaults.headers.common ['Accept'] ='application/json,text/plain,*/*' – Anthony