關於jQuery的AJAX不兼容IE的解決辦法


在使用jQuery的AJAX:get方法去檢測數據是否存在時,會發現IE會出現不兼容的情況。

 

用AJAX:post方法時,使用Chrome/FireFox/IE均能出現正確的結果,但是在使用AJAX:get方法時,IE卻不能返回正確的結果。

 

難道是數據超出了get方法的限制的長度,這個也不可能,我總共才傳了一點點數據。排除。

 

網上一些網友說是IE緩存的問題,在請求數據后邊加上隨機數就行,比如加上時間數new Date().getTime()。

先前的代碼中我已經添加了隨機數,用的是“Math.random()”也不行。難道用時間比較靠譜?

 

那就改成獲取時間試試,在參數后加“new Date().getTime()”后反復測試還是不行,真是百思不得其解!這個錯誤也排除了。

 

反復查看手冊后發現請求的數據格式還是有一種JSON格式,如{foo:["bar1", "bar2"]} ,然后就按照這種格式書寫,還真的返回了正確的查詢結果。真不知道IE還有這點要求。(完)

 

先前的格式:

    type: "get",

    data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp="+new Date().getTime(),

改進后格式:

    type: "get",

    data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()},

 

在jQuery手冊中是這樣描述的:

data Object,String

發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后。

查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。

如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 "&foo=bar1&foo=bar2"。

 

代碼片段:

var  siteUrl= "http://blog.sina.com.cn/cnwyt"
jQuery.ajax({
type:  "get" ,
url: siteUrl+ "cosmetics/product/ajax_check?" ,
//data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp=" + new Date().getTime(),
data: { 'bid' :my_bid, 'name_cn' :name_cn, 'timeStamp' : new  Date().getTime()},
dataType:  'json' ,
error:  function  (err) { alert( '網絡故障,請與管理員聯系!' ) },
success:  function  (message) {
if (message!= false ){
//ture的代碼
} else {
//false的代碼
}
});

 

 

參考鏈接:

 

jQuery 的 .get和.post和.ajax方法IE的兼容問題 

http://blog.csdn.net/muziduoxi/article/details/7541800

 

jquery ajax在IE下失效

http://www.im87.cn/blog/256

 

轉自:http://blog.sina.com.cn/s/blog_6c971aa301014mva.html


免責聲明!

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



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