跳到主要內容

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...

【課程】Arduino 四軸飛行器實作坊,無人機硬體、無線遙控器、飛控軟體整合、飛行教學,一天學會

    您好: 【6月開課】輕鬆上手,燃燒你的飛行魂!2017/6/3(六)為您舉辦「 Arduino 四軸飛行器實作坊 」。講師邀請到翔探科技團隊,自有技術研發的飛行器、原始程式碼、電路設計都是為了讓初學者能夠踏入四軸飛行器領域,套件亦適合進階應用開發。 課程使用Arduino模組進行教學,非常容易學習,從無人機硬體、飛航控制到搖桿操控飛行,一天學會。 歡迎來上課練功、技術交流、吹冷氣、交朋友。也請您把課程資訊提供給需要的同學、同事或朋友。 了解詳情、報名>>> 了解詳情、報名>>> 【課程內容】 時間:2017/6/3(六) 早上 09:30~下午 17:30 了解詳情、報名>>> 為什麼要來上課? 學會基本的飛控程式、飛行技巧,後續可以進階到:自製Arduino遙控器、空拍機、競速機、物聯網機、環境監測機等等應用。 本次課程主要使用Arduino模組進行教學,非常容易學習,無論是否是熟悉程式的學員都能夠輕易上手,模組化感測器控制原理教學。 翔探科技自有技術研發而來的四軸飛行器,包含原始程式碼以及電路設計都是特別以競速無人機飛控技術為基礎,專為初學者開發的四軸飛行器電子積木套件 翔探科技LDSLITE250的重量輕(低於100g) 旋翼的轉速也比一般低速很多,所以十分安全適合教育及實驗開發使用。 本課程提供旋翼機飛控最重要的體驗並學習調整PID,並且學會自己設計飛控程式 動手組裝LDSLITE 250四旋翼機,體驗自造航空器樂趣。 PAW 遙控器也是翔探科技針對無人機教育自行開發的Arduino搖桿能讓學員更能自造精神及樂趣。 認識講師,遇到困難有人回答。書本資料太多、網路上的資料太分散,現場有人教學得快。 感謝您閱讀這封信,希望這個實作坊能滿足您的需求。 T客邦創客基地 林鈺奇 感謝您 有任何問題,歡迎跟我聯絡: danny_lin@hmg...