跳到主要內容

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 四軸飛行器實作坊:機體組裝、寫飛控程式、自製遙控 App、飛行教學,一天學會

    您好: 【造飛機】燃燒你的飛行魂!10/1(六)為你舉辦「 Arduino四軸飛行器實作坊 」。講師邀請到經驗豐富Arklab團隊來教學,一天學會利用開源軟硬體做無人機。 想要學技術、做空拍、收集環境資訊、協助救災、觀察危險地帶、競速…各種無人機的應用,都可以從這場實作課開始,利用開源硬體、開源軟體的力量,實現願望。 歡迎來上課練功、技術交流、吹冷氣、交朋友。也請您把課程資訊提供給需要的同學、同事或朋友。 了解詳情、報名>>> 了解詳情、報名>>> 【課程內容】 時間:2016/10/1(六) 早上 09:30~下午 16:30 了解詳情、報名>>> 為什麼要來上課? 學會用開源硬體、開源軟體做無人機,以後可以自己改,做出更多應用。 學會基本的飛控程式、飛行技巧,後續可以進階到:自製Arduino遙控器、空拍機、競速機、物聯網機、環境監測機等等應用。 用手機就可以遙控,不用買很貴的遙控器。 無人機的應用有很多想像空間,除了空拍,也可以應用在環境感測、安全監控、物流、競速、資訊收集各種領域,值得學習。 學會調整飛行介面參數,讓飛行能夠更加平穩。 同時學習程式與硬體,培養跨領域的思維、解決問題的能力。 認識講師,遇到困難有人回答。書本資料太多、網路上的資料太分散,現場有人教學得快。 感謝您閱讀這封信,希望這個實作坊能滿足您的需求。 T客邦創客基地 林鈺奇 感謝您 有任何問題,歡迎跟我聯絡: danny_lin@hmg.com.tw

AIoT人工智慧+物聯網實作,用Web技術+深度學習+電腦視覺開發工具,讓裝置學會影像辨識

    您好: 2018/4/21(六)舉辦的「 AIoT人工智慧+物聯網實作 」,用Web技術+深度學習+電腦視覺開發工具,從無到有打造智慧物聯網應用。 課程把人工智慧技術結合物聯網裝置,用Web技術實作機器學習流程,從影像串流到利用Deeplearn.js(在瀏覽器中訓練神經網路)訓練影像辨識模型,同時結合Webduino物聯網裝置語音回報結果。 歡迎來上課練功、技術交流、吹冷氣、交朋友。也請您把課程資訊提供給需要的同學、同事或朋友。

Tips from AngelList on adding Codecademy to your resume

How to put your skills on display; new-look homepage; API Season Newsletter #50 June 6, 2018 Essential news, trends, and stories from Codecademy and the world of code. Completing a Codecademy course is no small feat. After learning, internalizing, and practicing complex technical concepts, you owe it to yourself to reap the rewards. Show the world the courses you've completed and the skills you've mastered, then see a change in your career. To help you get there faster, we asked the experts at AngelList and Paysa for advice. Read on for tips on why, how, and when to add Codeca