国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 芜湖市| 霍城县| 南宫市| 阜康市| 当阳市| 阜城县| 龙山县| 凤冈县| 武川县| 元阳县| 绥德县| 柯坪县| 乐至县| 南木林县| 沁水县| 溧水县| 高陵县| 仙游县| 怀柔区| 泽库县| 陆良县| 台南市| 金湖县| 呼图壁县| 彭州市| 布拖县| 南汇区| 玛纳斯县| 寿宁县| 沙坪坝区| 偏关县| 马关县| 大安市| 台东市| 农安县| 白河县| 抚州市| 南开区| 安平县| 桦南县| 顺平县|