如何解決jquery ajax不相容ie8的問題

藏色散人
發布: 2023-01-04 09:38:34
原創
2271 人瀏覽過

jquery ajax不相容ie8的解決方案:先開啟對應的程式碼檔案;然後使用JSON格式請求數據,其程式碼語句如「{foo:["bar1", "bar2"]}」。

如何解決jquery ajax不相容ie8的問題

本教學操作環境:Dell G3電腦、Windows7系統、jquery1.10.0&&ie8版本。

推薦:《javascript基礎教學》《jquery影片教學

關於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 ajax不相容ie8的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!