ajax問題總結

2021-09-08 21:12:01 字數 3116 閱讀 9176

在看文章前,先指定乙個通用的變數

xhr,

xhr代表

ajax

物件。

測試瀏覽器:ie為

ie6,

firefox為2

,其他的未測試。統稱

ie6為ie,

firefox2為ff

基本的

1,最經典的就是

ie下的快取問題了。

如果使用的是

get,那麼在

ie下出現快取問題。導致**只執行一次。解決辦法就是加時間戳或者隨機數,使

url變為唯一,這樣就不會出現

ie下的快取問題了,或者改為

post

提交。

jscript code

xhr.open("get","***x.aspx?_dc="+

newdate().gettime(),

true);

2,ajax

物件屬性的大小寫問題

在w3c

瀏覽器,如

ff中,對大小寫是敏感。如

if(xhr.readystate==4)

這種寫法,在

ie下是成立的,但是在

ff下就行不通了,因為

ie不區分大小寫,

ff是區分大小的。

標準寫法為

if(xhr.readystate==4)

,同理還有屬性

responsetext

,respon***ml。3

,ajax狀態0

問題有些時候在測試

ajax

**的時候,加了

xhr.status==200

的判斷後,一直不執行

xhr.status==200

的**,這個就需要注意了。

xhr.status==200

是要通過伺服器來瀏覽,並且伺服器頁面沒有發生錯誤或者轉向時才返回

200狀態的,此狀態和你通過瀏覽器訪問頁面時伺服器定義的狀態一致。

直接拖進瀏覽器瀏覽結果或者雙擊執行html頁面的,未發生錯誤時,此時的xhr.status0,不是200

所以可以多加乙個

xhr.status==0

的判斷。如下

jscript code

if(xhr.status==200||xhr.status==0)

直接拖進瀏覽器瀏覽結果或者雙擊執行

html

頁面時,又出現乙個問題,如果請求的是

xml檔案,那想當然的是使用

respon***ml

屬性返回

xmldom

了,但是在

ie返回不了

xmldom

屬性,解決辦法如何呢,看下面的

respon***ml

問題。 4,

respon***ml

問題。要使用

respon***ml

屬性,請求的是

xml檔案或者設定了響應頭為

"text/xml"

的動態頁面了。要注意如果請求的是動態頁面,一定不要忘記設定

contenttype

為"text/xml"

!!!!!!!!切記

~~~~~~

asp為

response.contenttype="text/html"

asp.net

為response.contenttype="text/html";

php為

header("content-type:text/xml;");

ie下有個問題,直接拖進瀏覽器瀏覽或者雙擊執行html預覽效果時,請求的即使是xml檔案,使用respon***ml返回不了xmldom

大家測試下就知道了,如下

showbo.xml

xml code

<?

xml version="1.0" encoding="utf-8"

?>

<

showbo

>

<

item

>

1item

>

<

item

>

2item

>

<

item

>

3item

>

<

item

>

4item

>

showbo

>

test.html

jscript code

function

getajax()

varxhr=getajax();

xhr.onreadystatechange=

function()

else

alert('

發生錯誤\n\n'+xhr.status);}}

xhr.open("get","showbo.xml?_dc="+

newdate().gettime(),

true);

xhr.send(

null);

解決辦法就是使用

microsoft.xmldom

物件重新建立

xml的樹結構,如下

Ajax系列之四 問題總結

1,最經典的就是ie下的快取問題了。如果使用的是get,那麼在ie下出現快取問題。導致 只執行一次。解決辦法就是加時間戳或者隨機數,使url變為唯一,這樣就不會出現ie 下的快取問題了,或者改為post提交。xhr.open get x.aspx?dc newdate gettime true 2,...

Ajax系列之四 問題總結

1。最經典的就是ie下的快取問題了。假設使用的是get。那麼在ie下出現快取問題。導致 僅僅執行一次。解決的方法就是加時間戳或者隨機數,使url變為唯一,這樣就不會出現ie 下的快取問題了,或者改為post提交。xhr.open get x.aspx?dc newdate gettime true ...

Ajax請求Json遇到的問題總結

第一次用ajax call後端,遇到了不少問題。所以就下面總結一下,以免後面再犯。下面是 部分 document ready function 如果沒有json.stringify這個函式就會報400,這個錯誤。因為後端進行引數繫結的時候就會有問題 type post datatype json 期...