您好,登錄后才能下訂單哦!
本篇內容主要講解“php中使用Ajax時出現Error的解決方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php中使用Ajax時出現Error的解決方法”吧!
今天在寫代碼的時候,用到ajax異步獲取數據,在firefox 13.0下一切正常,而在各個版本的IE之下測試IE6正常,IE8卻會報錯 "Error: 由于出現錯誤 c00ce56e 而導致此項操作無法完成"。因為firefox是我寫代碼和做測試的瀏覽器,所以一般都會首先保證在它下邊的正確性,firefox下一切看起來都那么正常。
我的環境是:js代碼是基于jQuery的、使用了異步加載的方式加載各個js類庫、請求方式是'GET',返回格式'html';
由于之前的工作階段性的完成,所以準備在IE下看看是否正常,一看之下,有點郁悶,沒有反應..數據沒有顯示出來。然后在IE下,F13,發現IE下請求數據的過程沒有問題,而且在控制面板中也獲取到了數據,但是當我使用$('#id').html(data);往DOM中插入數據時,完全無反應。
繼續調試,然后我在$.ajax請求的error參數選項中,alert其傳遞給回調函數的errorThrown參數時,獲取到了如下錯誤:“由于出現錯誤 c00ce56e 而導致此項操作無法完成。”,這個很關鍵,因為彈出的錯誤是有代碼的,所以這是一個有跡可循的錯誤。
這里順便說一句,在firefox下ajax請求是返回success的,而IE下是返回error的。根據這個錯誤提示,在網上搜索了相關的答案,找到比較有用的說法是編碼不一致。經過查找發現,原來我html頁面的編碼是utf-8,而在我php程序中設置的也是 header('Content-type: text/html;charset=utf-8'); 這都郁悶了,一樣的都沒有問題啊,后來查看頁面源代碼的時候發現怎么是utf8呢,少了一個'-'這個'-'跑哪去了,后來才發現原來nginx配置中設置了charset utf8;強制字符編碼為utf8了, 趕緊加上重啟nginx一切正常。。。
根據這個問題可以總結如下經驗:
firefox的容錯能力比IE更強,以HTML5的設計思想來說,firefox表現得更好,對于這樣的容錯能力,是否會造成安全隱患,由于未經過測試,所以暫時不知;
盡量保持程序的各種編碼的一致性,否則可能會出現不可預知的錯誤,推薦使用utf-8;
到此,相信大家對“php中使用Ajax時出現Error的解決方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。