好了,我嘗試部署與webpack
和create-react-app
捆綁的應用程序,該理論在這裏很簡單:CORS和同源策略請求問題的反應捆綁的應用程序
進出口使用環境變量的一些事情,但在簡單地說,在development
中我們使用了一個類似http://theapp.app.com/api/v3/endpoint
的URL,它可以工作。
在production
模式(yarn build
)中,URL是http://localhost/api/v3/endpoint
,存在唯一的更改。
無論如何,我使用fetch
API來提出我的請求,並且我正在玩fetch配置的mode
。對於development
它是mode: 'cors'
,因爲服務器不在我的本地機器上,並且它工作正常。
在production
標誌的情況下,我試着用mode: 'same-origin'
和cors
但我在分別爲了得到這兩個錯誤:
之前的一些操作:
- 是的,API應用程序和軟件包由相同的服務器/機器提供服務。
是的,我們已經在服務器上配置CORS(我們使用python瓶):
@app.hook('after_request') def enable_cors(): response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept' response.headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS'
- 是的,我知道,請求源的URL不在
same-origin
政策相同,但cors
啓用它也爆炸,http://data.blabla
是來自直接服務器的網址....我只是不知道該怎麼辦。
任何想法?我(可悲的是)有幾個小時在此。
'請求模式是「相同的來源」,但......' - 如果請求實際上是交叉原點,爲什麼請求模式是相同的?爲什麼使用'localhost'的「生產模式」?該應用是否包含Web服務器? –
嗯,我說我嘗試了'同源'(第一張圖片),然後是'跨源'(第二張圖片)。 – Nano
抱歉,所以你做了...... *在這種情況下,這個「localhost」是什麼?你提到「應用程序」,所以我很困惑,你期望從「本地主機」 –