ie ajax 跨域情況遇到的各種問題

2022-09-15 11:45:14 字數 1380 閱讀 3770

jquery.support.cors = true;

ie8下出現的問題,chrome正常,找到了這篇文章

//之前沒有加這句老是提示no transport,我沒去深想。

});jquery.support.cors只是對cors協議的一種實現,具體可以看jquery的源**,這裡不多說。

解決辦法是修改content-type為」text/html;charset=utf-8「,然後在前端對資料做一次json編碼再進行使用。

該問題只在ie系列下存在,在ff和chrome上均正常。

詳見:

於是,我用chrome瀏覽器分別抓取了可以正常互動的json和產生錯誤的json資料,然後對它們的header部分進行對比:

這是報錯json的header部分:

以及(新增utf8編碼後):

這是正常json的header部分:

除去http版本號、狀態碼、伺服器名稱以及響應時間,真正不同的只有兩行,即第三行和第四行。我隨後經過查閱資料得知,「transfer-encoding: chunked」和「content-length: ***」是兩種不同的傳輸方式,後者傳輸的內容長度是固定的,而前者,則適用於不斷向瀏覽器端輸出內容的場景。所以,真相只有乙個——編碼問題!!於是我把編碼中的「utf8」改成了「utf-8」,再除錯,問題果然華麗麗地解決了!

因此,原因就是 —— 第乙個header中沒有新增字符集;第二個header中把「utf-8」字符集的格式寫錯了,舊版的ie瀏覽器不能識別編碼,僅此而已。所以如果你在寫程式的過程中也遇到了json變數是「undefined」的情況,不妨先去看看是不是編碼出了問題,因為舊版ie瀏覽器對編碼格式的書寫太敏感了。

遇到的跨域問題?

2019 8月中旬,測試前後端分別部署在不同的伺服器上,遇到跨域問題?具體問題暫時沒辦法重現。等重現狀況後我會繼續更新解決方案。2019 9月,遇到伺服器備案問題,10月初,嘗試使用國外的vps做nginx 跳過備案問題,測試成功。成功訪問到靜態頁面,但 js請求後端遇到跨域問題,思考原因估計是js...

跨域遇到的問題

已經好幾年沒寫過前端了,所以很懵逼。執行傳送的時候出現 意思是預發請求的時候不通過,不再正式發請求 經過反覆的測試,發現,header裡面包含自定義字段,瀏覽器是會先發一次options請求,如果請求通過,則繼續傳送正式的post請求,而如果不通過則返回以上錯誤 那這樣就只能在服務端配置option...

快速入門各種跨域

前言 因為學習跨域需要配置本地伺服器,可能會比較麻煩,所以自己根據網上的部落格寫了大多數跨域的簡單demo,可以自己在 本地執行 而且 不用配置伺服器 自己對於跨域的理解剛開始也僅僅在於網上的部落格文章,通過寫這些可以本地執行的demo讓我對跨域有了更直面的理解,希望這些demo對你們有幫助,有錯誤...