JSP encodeURI() 函式
函式返回值
URIstring 的副本,其中的某些字元將被十六進位制的轉義序列進行替換。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。
該方法的目的是對 URI 進行完整的編碼,因此對以下在 URI 中具有特殊含義的 ASCII 標點符號,encodeURI() 函式是不會進行轉義的:;/??&=+$,#
個人應用:
$("#showLocationBtn").click( function() { var getID = getSelectDeviceID(); $.ajax({ cache : true, type : “POST”, data : {“listDeviceID” : getID}, url : “<%=path%>/getLatitudeAndLongitudeByID.action”, async : false, error :function(request) { }, success : function(data) { var tan = layer.open({ type:2, title:‘位置:’, //shade:[0], //maxmin:true,//開啟最大化最小化按鈕 area:[‘100%’,‘100%’], content:‘map/local.do?localData=’+encodeURI(data) }) } }); } );
通過傳入裝置id 獲取裝置的經緯度等資訊,再次呼叫遮罩層的方法,將傳入經緯度等引數傳入,得到地圖相關資訊。 問題為:沒加encodeURI(data) 之前 傳入 data,如果引數有 雙引號,中括號等特殊符號,會對資料產生擷取等影響。
解決方式: content:‘map/local.do?localData=’+data 改成 content:‘map/local.do?localData=’+encodeURI(data)