試圖關注我無法使用fetch從我的https webpack-dev-server重定向。正如你所看到的,我正在提出請求。針對預檢的條紋授權重定向響應無效或需要「Access-Control-Allow-Origin」標題(重定向)
return fetch(`https://localhost:3443/stripeAuthorize`, {
method: 'GET',
headers: {
"Access-Control-Allow-Origin": "https://localhost:3443",
'Accept': '*/*',
}
})
.then((data) => {
return data.json()
})
.then((json) => {
console.log('redirectjson', json)
})
.catch((err) => {
console.log('stripe redirect err caught: ', err)
})
展望鉻的網絡選項卡里面我看到的狀態代碼「303查看其它」兩個選項和GET
請求報頭:
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8,es;q=0.6,th;q=0.4,zh-TW;q=0.2,zh;q=0.2,la;q=0.2,ja;q=0.2
Access-Control-Request-Headers:access-control-allow-origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
我也注意到,獲取網絡通話是在瀏覽器傳入的OPTIONS之上,GET調用將在OPTIONS之前出現,這似乎很奇怪。我似乎無法從條紋或http協議獲取任何其他信息。服務器上沒有錯誤調用
如何調試此問題,爲什麼分條重定向不起作用?
編輯:我想我說得很清楚,如果我刪除「訪問控制允許來源」我得到的錯誤:
無法加載 https://connect.stripe.com/express/oauth/authorize?client_id=ca_BR4uV37xvFoKjLE5g9g2wzcmYNT0jnXZ&state=xy5z4k7lpe7rkwyerlxv9rudi&stripe_user%5Bbusiness_type%5D=company: 否「訪問控制允許-Origin'標題出現在請求的 資源中。原因'https://localhost:3443'因此不允許 訪問。如果一個不透明的響應滿足您的需求,請將請求的 模式設置爲'no-cors'以禁用CORS來獲取資源。
從請求標頭中刪除''Access-Control-Allow-Origin「:」localhost:3443「;'。這就是您的瀏覽器發送OPTIONS請求的原因。 Access-Control-Allow-Origin頭是服務器發回的嚴格*回覆*頭。將其添加到請求中的唯一效果是導致瀏覽器執行預檢,從而導致某些可能會工作的內容。爲什麼在請求中發送Access-Control-Allow-Origin標頭?嘗試防止一些其他錯誤? – sideshowbarker
@sideshowbarker我爲沒有讓自己更清楚而道歉我以爲我做了,如果我刪除Access-Control-Allow-Origin,我不允許訪問。 – mibbit
如果您將Access-Control-Allow-Origin放入請求中,您也不被允許訪問 - 而是因爲觸發預檢而導致您得到不同的錯誤。它沒有啓用任何新的訪問。問題是來自「https:// localhost:3443/stripeAuthorize」的響應沒有Access-Control-Allow-Origin標頭。而且,因爲它沒有,您的瀏覽器會執行正常的默認同源Web安全策略,並阻止您的前端JavaScript代碼訪問響應。解決辦法是配置該服務器發送回訪問控制允許起源 – sideshowbarker