程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php中使用Ajax時出現Error(c00ce56e)的詳細解決方案

php中使用Ajax時出現Error(c00ce56e)的詳細解決方案

編輯:PHP綜合

今天在寫代碼的時候,用到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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved