跨來源請求被阻止:了解原因
跨越不同域的HTTP 請求可能面臨稱為同源策略的安全限制(SOP ),導致「跨來源請求被阻止」錯誤。此策略可防止腳本在未經明確許可的情況下向其他來源(例如伺服器或網頁)發出請求。
Go Handler 的解決方案
解決您的問題Go handler,需要透過設定適當的Access-Control-Allow-Origin 來明確允許跨域請求header :
func handleMessageQueue(w http.ResponseWriter, r *http.Request) { // Allow cross-origin requests w.Header().Set("Access-Control-Allow-Origin", "*") ... }
Firefox OS應用程式的解決方案
在您的 JavaScript 程式碼中,可以使用特權 XMLHttpRequest 來繞過 SOP 限制。為此,請使用以下語法:
var xhr = new XMLHttpRequest({mozSystem: true});
其他清單配置
要使特權 XMLHttpRequest 在 Firefox OS在應用程式中工作,您需要添加適當的對清單檔案的權限:
"permissions": { "systemXHR": {}, }
原因錯誤
預設情況下,作為安全措施,瀏覽器對其他來源的請求將被阻止。當您從 Firefox OS 應用程式向 Go 處理程序發出 POST 請求時,處理程序的回應會因 SOP 而被阻止。在 Go 處理程序中設定 Access-Control-Allow-Origin 標頭並在應用程式中使用特權 XMLHttpRequest 允許跨來源請求,從而解決問題。
以上是為什麼我的跨來源請求被阻止,如何在 Go 和 Firefox OS 中修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!