跨源请求被阻止:了解原因
跨越不同域的 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中文网其他相关文章!