最近在開發一些html5的介面,h5中介面的資料都是從伺服器介面獲取,而且我們從伺服器獲取資料時就涉及到跨域的問題,這樣我們就不得不使用了jquery中的jsonp get請求。http請求如果包含有中文引數,一般我們是通過post請求替代get請求來解決編碼問題,但是很抱歉,jsonp 由於其原理的原因只能是get請求。所以對於包含有中文引數的get請求,就得對引數進行url編碼,以解決中文編碼的問題。如下:
var fullurl =
''var reqdata =
'';//有中文的引數
reqdata = encodeuricomponent(reqdata);//url encode utf-8
//封裝完整的請求的url位址,str引數放請求的json資料
fullurl = fullurl +
'?str='
+ reqdata +
'&r='
+new
date().gettime();
console.
log('jsonp get請求fullurl:'
+ fullurl);
//以下發出js請求
很明顯,上述get請求,我們已經使用encodeuricomponent對引數進行了編碼,這樣我們服務端servlet接收請求並解析引數時,無需額外的工作就能自動將引數解碼。如下:
string reqstr = req.getparameter("str");//可能str是中文,但是無需額外工作既會自己解碼
以下說的就是我踩到的坑。我們的專案打包到阿里雲的伺服器或者我把專案打包放到本地的tomcat容器發布之後,從h5發出的get請求,就算有中文引數,服務端解析都不會亂碼;但是我在eclipse中配置使用的tomcat執行專案,卻總是亂碼,這讓我陷入了沉思,多次檢查本地的tomcat已確認編碼設定為utf-8編碼。按道理說,eclipse中執行的server依賴了本地tomcat,本地tomcat的編碼已經已經在server.xml設定,為何不生效。經過多番折騰,原來才明白eclipse的server雖然依賴了本地tomcat環境,但是只是當做了乙個執行的容器,而執行的server卻引用了eclipse中server中配置的server.xml檔案,並不是本地tomcat中的server.xml檔案。
所以,我們找到eclipse中servers下面的server,修改裡面的server.xml檔案,最終編碼問題得以解決:
記錄一下這個坑,以免以後會重踩!
eclipse無法建立Server
報錯 cannot create a server using the selected type 1.退出eclipse 2.到 工程目錄下 metadata plugins org.eclipse.core.runtime settings 3.把 org.eclipse.wst.server....
eclipse優化設定
1.滑鼠放在 上出提示 2 在右邊的basic下選擇text font進行編輯即可。4.匯出配置 方法一 直接儲存乙個已經配置好但沒建專案的空workspace 推薦 配置就儲存在workspace中,把乙個已配置好但沒建工程的空workspace儲存起來 如壓縮乙個副本 以後不要新建workspa...
eclipse使用設定
loco 1 更新eclipse help check for updates 2 更新 解除安裝eclipse中已安裝的外掛程式 help installation details 4 常用外掛程式 eexplorer或者easy shell 開啟eclipse中原始檔所在資料夾 terminal...