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



jQuery.support.cors = true;

http://blog.csdn.net/jupiter37/article/details/25694289 

jQuery ajax跨域調用出現No Transport

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

http://www.cnblogs.com/Curious/p/3423275.html
//之前沒有加這句老是提示no transport,我沒去深想。

    jQuery.support.cors = true;
        $.ajax
        ({
            
            type: "POST",
            contentType: "application/x-www-form-urlencoded",
            dataType: "html",
            url: "http://www.*****.com",  //這里是網址
            success:function(data){alert(data);},
            timeout:30000, 
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(errorThrown);
            }
        });

 

jquery.support.cors只是對CORS協議的一種實現,具體可以看jQuery的源代碼,這里不多說。

附上幾個很好的參考資料:
http://newhtml.net/using-cors/

http://www.kimhou.com/?p=222

http://blog.csdn.net/nuccch/article/details/43086843 

解決IE下返回json數據提示文件保存到問題

在IE9,10,11下,當服務器端返回數據格式為json,且明確設置Content-Type為”application/json;charset=utf-8“時,會提示文件下載。如圖所示:


解決辦法是修改Content-Type為”text/html;charset=utf-8“,然后在前端對數據做一次JSON編碼再進行使用。
該問題只在IE系列下存在,在FF和Chrome上均正常。
詳見:http://www.oschina.net/question/223750_123703

 

http://www.shagua.name/post/17.html

JQUERY獲取JSON時IE瀏覽器提示UNDEFINED錯誤的解決辦法

    於是,我用Chrome瀏覽器分別抓取了可以正常交互的JSON和產生錯誤的JSON數據,然后對它們的Header部分進行對比:


     這是報錯JSON的Header部分:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 23 Jun 2014 13:19:21 GMT
     以及(添加utf8編碼后):

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=utf8
Transfer-Encoding: chunked
Date: Mon, 23 Jun 2014 13:19:21 GMT
     這是正常JSON的Header部分:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 920
Date: Mon, 23 Jun 2014 13:27:10 GMT
除去HTTP版本號、狀態碼、服務器名稱以及響應時間,真正不同的只有兩行,即第三行和第四行。我隨后經過查閱資料得知,“Transfer-Encoding: chunked”和“Content-Length: XXX”是兩種不同的傳輸方式,后者傳輸的內容長度是固定的,而前者,則適用於不斷向瀏覽器端輸出內容的場景。所以,真相只有一個——編碼問題!!於是我把編碼中的“utf8”改成了“utf-8”,再調試,問題果然華麗麗地解決了!


     因此,原因就是 —— 第一個Header中沒有添加字符集;第二個Header中把“UTF-8”字符集的格式寫錯了,舊版的IE瀏覽器不能識別編碼,僅此而已。所以如果你在寫程序的過程中也遇到了JSON變量是“undefined”的情況,不妨先去看看是不是編碼出了問題,因為舊版IE瀏覽器對編碼格式的書寫太敏感了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM