今天程式中有個地方需要 ajax 方式 post 資料,發現在 ie 6.0 下正常,而 firefox 0.3.0 和 safari 3.1.2則出錯。
通過 firebug 抓取 ajax 回發後得到的頁面資訊如下:
經過 google 搜尋發現,這個 http 狀態碼對應於伺服器沒有接收到 content-lengh 這個 header 的情況。
而為什麼只有在 ajax 的情況下有呢?是因為呼叫了:
傳送 null 的時候,伺服器就有可能發出以上資訊。而按照正常邏輯,不需要傳送資訊的時候,應該用 get 方法而不是 post (在 xmlhttp.open 方法中指定),那樣就能解決此問題。
但也可以用:
來解決。
因為我呼叫了 jquery 的 $.ajax 方法來間接實現的 ajax 功能,所以,jquery 中呼叫 $.ajax 時,無論有沒有資料,總是寫乙個空字串為資料,就可以避免這種問題了:
$.ajax( ,
success : function(xml)
});至於為什麼 ie 可以而 firefox 則出錯,可能是因為 ie 中的 xmlhttp 物件和 firefox 的 xmlhttprequest 行為稍有不同造成的。
jquery ajax請求問題
在請求後台介面的時候,我們很常見的用法就是 ajax 平常從來沒有在意過請求的時間響應的時間問題,今天在程式中接觸到了,如下圖所示的status 還有在pending的請求。我使用的是datatables框架,請求好的資料直接塞到框架裡面。但是這個就會出現問題了,比如先請求的status還沒有200...
jquery ajax請求的非同步屬性
asynchronous 英音 ei si kr n s 美音 e s kr n s ajax 方法通過 http 請求載入遠端資料。該方法是 jquery 底層 ajax 實現。非同步屬性設定 async 型別 boolean true 非同步請求 false 同步請求 預設值 true。預設設定...
jQuery Ajax 設定請求頭
在專案中採用token來驗證使用者登入,運作機制大致如下 這時問題就來了 請求 ajax 報錯 request header field access token is not allowed by access control allow headers in preflight response...