跳到主要內容

JQuery AJAX 無法接收後端回傳值的解決...

筆者以撰寫PHP為主
慣用CodeIgniter Framework ,或單純採用Smarty 樣板引擎開發網站

筆者在網頁上,如果要使用到AJAX,首選是jQuery
若有接觸過或經常使用jQuery 的程式設計師, 應該都知道jQuery 是以UTF-8為主

筆者曾經遇過的案例是在公司內部的測試機以及本機電腦跑
各瀏覽器下瀏覽與操作,都沒有問題

移轉到客戶的測試環境下,也如預期能正常運作
但移轉到客戶的正式環境下,在IE各版本底下,$.ajax 的所有回傳全部都是 undefined
一度以為jQuery 有問題
再透過jQuery 1.4.1 (目前最新版本) 回傳的訊息比較詳細,是 c00ce56e 的錯誤訊息
經過Google大神的指導之下,原來這個訊息是「不支援指定的編碼」

再更進一步查詢才知道,原來IE不論什麼版本,頁面編碼與後端回傳的編碼必須是相同的
而c00ce56e錯誤是指頁面的編碼與後端回傳編碼不符導致

筆者覺得奇怪,前台, 後端程式都是 php 撰寫,並且header是utf-8沒有錯
甚至以為是CodeIgniter Framework作怪, 但只有客戶的正式環境會有問題

檢查了PHP的設定, 該設定的都設了,仍然是有問題
後來腦袋靈光一閃,會不會是Apache 的預設編碼與前台的編碼不同

最後的嘗試,index.php 的最開頭加上 ini_set("default_charset","utf-8");
結果,差點沒落淚,整個就是正常沒問題了

最終的分析結果,應是APACHE的預設編碼,讓回傳的json的header是不同編碼,而導致IE底下出現如此的錯誤

所以最好的方法就是,直接在程式中加入預設編碼為UTF-8的設定,這樣應該不會再遇到什麼怪問題了

留言

這個網誌中的熱門文章

Arduino 四軸飛行器開發實作,無人機硬體、無線遙控器、飛控軟體整合、飛行教學,一天學會

    您好: 2018/2/3(六)舉辦的「 Arduino 四軸飛行器實作坊 」,使用Arduino模組進行教學,非常容易學習,從無人機硬體、飛航控制到搖桿操控飛行,一天學會。 講師邀請到翔探科技團隊,自有技術研發的飛行器、原始程式碼、電路設計都是為了讓初學者能夠踏入四軸飛行器領域,套件亦適合進階應用開發。 ...

Where to find your coding community

How to make the most of Python communities; 3 new courses; beating automation Newsletter #48 May 10, 2018 Essential news, trends, and stories from Codecademy and the world of code. Learn Python with Friends & Mentors What would our school days have been without our best friends and favorite teachers? Being a student is more rewarding with a community to inspire us, hold us accountable, and push us forward. That's why we explained how to find and make the most of a supportive community while learning Python, or any other programming language. From in-person meetups to onlin...

這些,你都想要嗎?開信抽:陽明山天籟渡假酒店露天風呂體驗券、agnes b.托特包、麥當勞冰淇淋兌換券...

如您無法閱讀此信, 請點選此處看詳細內容。 06 Oct 親愛的臉書書友, 現在只要加入指定粉絲團 & 留言投票,就有機會獲得以下好禮喔: 免費送!你肯定喜歡的生活好禮 » 送【UCC下午茶禮券】名額10名! 送【商周集團 X 羅志祥Stage聯名T-Shirt】價值 $1800元... 送【HTC One M8 16G手機】價值 $17500元 即將結束!熱門活動通通倒數中 » 送【鑰匙掛飾一組】價值 $1680元 送【85度C商品兌換券】名額5名! ►更多禮物:mini30拍立得、Loqi春捲包、蕾絲鏡面珠寶盒… 特別推薦!一起按讚挖好康 » 送【Apple i-Pad Air】價值 $15900元 送:Hello Kitty鬧鐘、 Play Boy手錶、達菲熊伸縮識別夾... 送:全家500元禮券、OK超商1000元禮券、欣葉下午茶餐券2張... 用力省錢!超夯優惠直接享 » 【摩斯漢堡】早餐嚐鮮價 70元! 【漢堡王】著黑色服裝購買黑皮堡套餐享薯條飲料升級! ...