這個賞金已經結束。此問題的答案有資格獲得 100聲望賞金。賞金寬限期在13 小時后結束。 InquisitiveGirl想提請更多關注這個問題:
我應該能夠在沒有安全錯誤的情況下進行本地測驗
我正在設定 iframe 并堅持進行本地測驗。我的應用程式在 localhost:3000 上運行
我在我的應用程式中設定了 Iframe,并將 src url 設定為 localhost:1234 以進行本地測驗。我希望通過本地主機訪問可以解決跨源錯誤,但看起來由于埠號不同,這似乎不起作用
SecurityError: 阻止了來源為“http://localhost:3000”的框架訪問跨域框架。
我查看了各種堆疊溢位帖子并嘗試禁用 chrome web 安全性,即使這樣似乎也不能讓我進行一些本地測驗。
在這種情況下如何防止跨源錯誤的任何建議?
謝謝!
uj5u.com熱心網友回復:
您的應用程式(后端)應該發送一個 CORS 標頭(localhost:3000如果我理解正確的話)。不同的埠(就像不同的主機名)算作不同的來源,因此相同的來源策略適用于請求,并且您必須顯式啟用跨域請求。
這樣做的方法是您的“后端”必須發送回應標頭
Access-Control-Allow-Origin: localhost:1234
如果那是您的前端應用程式正在運行的地方。對于開發,您也可以發送
Access-Control-Allow-Origin: *
不要*在管道的后期階段執行此操作,尤其是不要在生產中執行,因為您可能會打開您的應用程式以遭受更多漏洞 (CSRF)。
如果您的前端應用程式使用 cookie 進行跨域身份驗證,則后端也必須 send Access-Control-Allow-Credentials: true,并且您的前端 javascript 必須添加withCredentials: true到請求中。但是,聽起來您并非如此。
我認為這比禁用跨域限制要好,因為這適用于任何開發人員,無需任何設定,并且不會影響瀏覽器的安全性。它使您可以完全控制哪些客戶端可以訪問您的 API,還可以讓您更好地理解跨源請求。
uj5u.com熱心網友回復:
我可以按照此處的步驟通過 Safari 進行本地測驗:
Safari -> 首選項 -> 高級
然后在底部勾選在選單欄中顯示開發選單
然后在開發選單中勾選禁用跨域限制
uj5u.com熱心網友回復:
默認情況下,某些現代瀏覽器禁用跨域資源共享。允許 CORS:Chrome 的 Access-Control-Allow-Origin插件添加了必要的 HTTP 標頭以在 localhost 上執行開發而不會出現 CORS 錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523949.html
標籤:反应安全框架跨域
