2017-01-16 130 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