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

首頁 > 學院 > 開發(fā)設計 > 正文

ASP接收Ajax 在POST方式下發(fā)送的escape編碼中的個別亂碼

2019-11-17 05:52:28
字體:
來源:轉載
供稿:網友

看代碼:

         var xmlhttp=getHTTPObject();
  var post="test·test+test·";
  xmlhttp.open('POST', 'test.asp?random='+Math.random(), true);
  xmlhttp.setrequestheader("content-length",post.length);
  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  xmlhttp.onreadystatechange = function(){
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
      alert(xmlhttp.responseText);
      return true;
    }
  }
  xmlhttp.send("act="escape(post));


在這里,我以POST方式發(fā)送了字符串escape("test·test+test·"),并且使用了setRequestHeader

ASP端接收的時候,我用

<%Response.CodePage=936%>
<%Response.Charset="gb2312"
Response.Write Unescape(Request("act"))
%>


最后調試一下你看到的結果就是“·”和“+”都顯示不出來。

開始我以為是asp和javascript的escape unescape不配套的結果,后來我使用vbsunescape(如下)代替unescape問題依然如故。


<script language="Javascript" runat="server">

  function vbsunescape(source){
    return unescape(source);
  }

</script>


我把+做了轉義,但是·不知道怎么弄,他把·轉成了什么我本來想寫進一個2進制文件看看(必須是二進制文件),但是在asp下用stream操作2進制文件我老出錯,哎沒時間弄這個了,還有好多事呢,先湊合轉義一下了,這個問題留給看到這個blog的高手們,解決了和我說一聲,謝了!


function escape2(str){
  return escape(str).replace(//+/g,"%2b");
}

--------------------------------------------
看到大家的回復,謝謝大家。汲取大家的思想精華,我終于研究出來了。。。。

最終的完美的解決方法是這樣的

發(fā)送端用encodeURIComponent(escape(xxxxxxx))就可以了(其他發(fā)送接受代碼同上)

我昨天僅作了encodeURI的嘗試,沒有想到encodeURIComponent和escape套接的方法,剛才突然來了靈感試了一下,太牛逼了,OHYEAH!吃飯去!!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴义市| 吉林市| 修武县| 靖安县| 莱州市| 建湖县| 调兵山市| 平顺县| 石棉县| 巴楚县| 长子县| 波密县| 通河县| 阿鲁科尔沁旗| 神农架林区| 土默特右旗| 涞水县| 双流县| 永定县| 三江| 全南县| 东乡| 湘阴县| 寿阳县| 澄江县| 财经| 石台县| 团风县| 南充市| 汝南县| 丰原市| 沙田区| 保亭| 海丰县| 高唐县| 方山县| 新野县| 神池县| 九龙城区| 万全县| 定兴县|