国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中的常見問題解決方法(亂碼,IE緩存,代理)

2024-05-06 15:56:24
字體:
來源:轉載
供稿:網友
這篇文章主要是對JavaScript中的常見問題解決方法(亂碼,IE緩存,代理)進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所 幫助

解決AJAX中文亂碼常用的兩種方法

1. 在客戶端進行encodeURI(utf-8也可以不做,默認),在服務器端將iso-8859-1編碼轉為utf-8編碼

2.在客戶端進行兩次encodeURI,在服務器端進行一次轉換。

第2種方法能解決問題的原因:

進行兩次轉換后,在第一次getparameter方法中進行第一次解碼,因為解出來的是英文(第一次encode之后的結果),所以不會出問題;第二次使用URLDecoder的decode方法,所以能正常解決這個問題。需要注意的是,在decode方法中需要指定解碼格式為"utf-8"。很多中文平臺使用的并不是utf-8(我猜應該是gb2312),所以decode的默認轉換并不一定是utf-8。

之所以在客戶端進行兩次編碼而在服務器只進行一次解碼,我猜是Tomcat的緣故。Tomcat為了讓程序員編程方便(get和post用一樣的代碼),所以會自動對post的編碼進行解碼,所以在服務器端就少了一次手寫的解碼語句。之所以還要再進行一次編碼解碼,是因為Tomcat自動解碼的操作并不一定是按照我們希望的編碼解的,但英文等字符無論在什么平臺上解出的碼都是一樣的,因此可以讓Tomcat自動解譯出第一次編碼后的結果,再手動來解譯encodeURI一次的代碼,就可以獲得自己所需的格式。

補充:現在又觀察了一下瀏覽器的行為,覺得不是Tomcat的緣故,因為在瀏覽器里的顯示的是中文,而不是編碼后的東西,對于這些個編碼問題現在是一頭霧水,希望知道這方面知識的朋友不吝賜教!

解決IE緩存的問題
    加一個時間戳,并且要檢查?

解決代理問題
    要將?轉為$

示例代碼:

復制代碼 代碼如下:


function verify() {
    //解決中文亂麻問題的方法1,頁面端發出的數據作一次encodeURI,服務器段使用new String(old.getBytes("iso8859-1"),"UTF-8");
    //解決中文亂麻問題的方法2,頁面端發出的數據作兩次encodeURI,服務器段使用URLDecoder.decode(old,"UTF-8")
    var url = "AJAXServer?name=" + encodeURI(encodeURI($("#userName").val()));
    url = convertURL(url);
    $.get(url,null,function(data){
        $("#result").html(data);
});
}
//給url地址增加時間戳,騙過瀏覽器,不讀取緩存
function convertURL(url) {
    //獲取時間戳
    var timstamp = (new Date()).valueOf();
    //將時間戳信息拼接到url上
    //url = "AJAXServer"
    if (url.indexOf("?") >= 0) {
        url = url + "&t=" + timstamp;
    } else {
        url = url + "?t=" + timstamp;
    }
    return url;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 成都市| 永安市| 哈巴河县| 全椒县| 临西县| 兴国县| 南京市| 云梦县| 拉孜县| 胶州市| 改则县| 焉耆| 莱西市| 驻马店市| 通渭县| 白玉县| 聊城市| 鱼台县| 白城市| 吉隆县| 溧水县| 婺源县| 从化市| 万全县| 沾益县| 靖宇县| 德安县| 元阳县| 徐水县| 新巴尔虎右旗| 霍州市| 瓦房店市| 满城县| 曲水县| 松江区| 从江县| 荃湾区| 宜兴市| 邢台县| 萨迦县| 贵德县|