php中使用Ajax時出現(xiàn)Error(c00ce56e)的詳細(xì)解決方案
今天在寫代碼的時候,用到ajax異步獲取數(shù)據(jù),在firefox 13.0下一切正常,而在各個版本的IE之下測試IE6正常,IE8卻會報錯 "Error: 由于出現(xiàn)錯誤 c00ce56e 而導(dǎo)致此項操作無法完成"。因為firefox是我寫代碼和做測試的瀏覽器,所以一般都會首先保證在它下邊的正確性,firefox下一切看起來都那么正常。
我的環(huán)境是:js代碼是基于jQuery的、使用了異步加載的方式加載各個js類庫、請求方式是'GET',返回格式'html';
由于之前的工作階段性的完成,所以準(zhǔn)備在IE下看看是否正常,一看之下,有點郁悶,沒有反應(yīng)..數(shù)據(jù)沒有顯示出來。然后在IE下,F(xiàn)13,發(fā)現(xiàn)IE下請求數(shù)據(jù)的過程沒有問題,而且在控制面板中也獲取到了數(shù)據(jù),但是當(dāng)我使用$('#id').html(data);往DOM中插入數(shù)據(jù)時,完全無反應(yīng)。
繼續(xù)調(diào)試,然后我在$.ajax請求的error參數(shù)選項中,alert其傳遞給回調(diào)函數(shù)的errorThrown參數(shù)時,獲取到了如下錯誤:“由于出現(xiàn)錯誤 c00ce56e 而導(dǎo)致此項操作無法完成?!保@個很關(guān)鍵,因為彈出的錯誤是有代碼的,所以這是一個有跡可循的錯誤。
這里順便說一句,在firefox下ajax請求是返回success的,而IE下是返回error的。根據(jù)這個錯誤提示,在網(wǎng)上搜索了相關(guān)的答案,找到比較有用的說法是編碼不一致。經(jīng)過查找發(fā)現(xiàn),原來我html頁面的編碼是utf-8,而在我php程序中設(shè)置的也是 header('Content-type: text/html;charset=utf-8'); 這都郁悶了,一樣的都沒有問題啊,后來查看頁面源代碼的時候發(fā)現(xiàn)怎么是utf8呢,少了一個'-'這個'-'跑哪去了,后來才發(fā)現(xiàn)原來nginx配置中設(shè)置了charset utf8;強(qiáng)制字符編碼為utf8了, 趕緊加上重啟nginx一切正常。。。
根據(jù)這個問題可以總結(jié)如下經(jīng)驗:
firefox的容錯能力比IE更強(qiáng),以HTML5的設(shè)計思想來說,firefox表現(xiàn)得更好,對于這樣的容錯能力,是否會造成安全隱患,由于未經(jīng)過測試,所以暫時不知;
盡量保持程序的各種編碼的一致性,否則可能會出現(xiàn)不可預(yù)知的錯誤,推薦使用utf-8;
相關(guān)文章
PHP實現(xiàn)抓取Google IP并自動修改hosts文件
這篇文章主要介紹了PHP實現(xiàn)抓取Google IP并自動修改hosts文件,本文方法可以實現(xiàn)免翻墻上google,小編親測可用,需要的朋友可以參考下2015-02-02Yii框架ACF(accessController)簡單權(quán)限控制操作示例
這篇文章主要介紹了Yii框架ACF(accessController)簡單權(quán)限控制操作,結(jié)合實例形式分析了Yii框架簡單權(quán)限控制操作參數(shù)設(shè)置與使用技巧,需要的朋友可以參考下2019-04-04PHP制作3D扇形統(tǒng)計圖以及對圖片進(jìn)行縮放操作實例
這篇文章主要介紹了PHP制作3D扇形統(tǒng)計圖以及對圖片進(jìn)行縮放操作實例,需要的朋友可以參考下2014-10-10php使用imagick模塊實現(xiàn)圖片縮放、裁剪、壓縮示例
這篇文章主要介紹了php使用imagick模塊實現(xiàn)圖片縮放、裁剪、壓縮示例,需要的朋友可以參考下2014-04-04