jquery ajax 在ie下面沒有調用的原因


今天發現jquery 1.7.2 在ie8下面的沒有調用$.get()方法。

1,然后各種調試,最后發現:把ie把關了,再打開$.get()。會調用,再第二次調用的用的時候發現又不行了。於是我推斷是ie緩存的問題,把ie緩存清除后,果然可以了。但是客戶不可能知道清理緩存。所以只能自己想辦法了

在網上發現各大朋友都給了個方法就是用jquery自帶的方法:

$.ajaxSetup({cache: false });

另外還有分析是,ie是根據請求的url是不是一樣來是否發送請求,對於同一請求,ie只發送一次http請求,所以同一請求發送多次,但ie實際是不會發送的。

有了這個原因:那么就好辦了,可以在url后面加個時間戳。

$.get(
    "imgsUpload",
    {imgsPath:path,timeStamp: new Date().getTime()},
    function(data){
    
    }
);

 

2,以下問題就是個人問題了,但是請求是能發送到后台了,並且也執行了,也返回了.但是不能執行ajax的回調方法。

但在其它瀏覽器是正常的。分析返回過來的data,發現亂七八糟的。那就是返回時的數據類型不對,我返回的json,但是我想都是以字符串形式返回的,所以我在服務器端有如下代碼:

response.setContentType("text/plain;charset=UTF-8");

ff,chrome是正常的,但是ie去只能把識別為text,不能解析成json,所有沒有調用ajax的回調方法

經過測試發現,可以不用設置消息頭,當然要設置也是可以的,但是不是text/plain,而是:

response.setContentType("application/json;charset=UTF-8");

 

以上問題應該是很簡單的問題,但是好多朋友竟然不知道,而且問題綜合在一起了很難發現,特此做筆記。


免責聲明!

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



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