瀏覽器訪問跨域問題

2021-10-01 11:38:54 字數 630 閱讀 7832

專案中遇到乙個問題:用ajax來獲取資料,但返回的status為0,從瀏覽器的列印看應該是跨域問題:

origin 'file://' has been blocked by cors policy: response to preflight request does not pass access control chech: no "access-control-allow-origin" header is present on the requested resource.

我用瀏覽器啟動乙個本地網頁(file:/然後在js**中用ajax來向乙個遠端伺服器請求資料,出現的這個問題。

引用阮一峰老師的部落格內容:

cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於ie10。

整個cors通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,cors通訊與同源的ajax通訊沒有差別,**完全一樣。瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。

因此,實現cors通訊的關鍵是伺服器。只要伺服器實現了cors介面,就可以跨源通訊。

瀏覽器需要開啟cors跨域選項。

但還是沒有正常訪問到資料,問題還需要進一步除錯。

瀏覽器跨域訪問WebApi

在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...

瀏覽器跨域訪問WebApi

在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...

瀏覽器跨域問題

就是瀏覽器在執行js時,會看這個js檔案屬於哪個站點,它只能在指令碼操作本站點,比如從傳來的js檔案,它就只能向傳送請求,沒有為什麼,這是瀏覽器強制規定的,你要用瀏覽器就必須遵循 1.傳輸協議一樣,也就是http這裡 2.網域名稱一樣,也就是www.asd.com,注意localhost和127.0...