下面是我的程序
HTML :
復制代碼 代碼如下:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
title>無標題頁/title>
script type="text/javascript" language="javascript">
var xmlhttp;
function createXMLHttprequest()
{
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
}
function inData()
{
var txtval=document.getElementById("txt").value;
createXMLHttprequest();
xmlhttp.open("GET","request.ashx?val="+txtval,true);
xmlhttp.onreadystatechange=getData;
xmlhttp.send(null);
}
function getData()
{
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
document.getElementById("showDT").innerHTML=xmlhttp.responseText;
}
}
}
/script>
/head>
body>
form id="form1" action="">
div>請輸入姓名:
input type="text" id="txt" />
input type="button" value="提交" id="asdf" onclick="inData()" />
span id="showDT" >/span>
/div>
/form>
/body>
/html>
request.ashx :
Code
復制代碼 代碼如下:
%@ WebHandler Language="C#" Class="request" %>
using System;
using System.Web;
public class request : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string tab ="來自服務器的信息:您好 "+context.Request.QueryString["val"].ToString()+" --by time:"+DateTime.Now.ToLongTimeString();
context.Response.Write(tab);
}
public bool IsReusable {
get {
return false;
}
}
}
baidu搜了一大堆 大致意思是 AJAX提交數(shù)據(jù)時,使用的是UTF-8的編碼 并且不可以設置為其他格式
如何解決呢 最后發(fā)現(xiàn)一個JS的函數(shù)escape與unescape 用escape()對將要提交的漢字進行編碼,會出現(xiàn)大致%10%20的字符,類似與.NET中Server.UrlEncode()與Server.UrlDecode();
將JS獲得的表單值進行重新編碼
Code
復制代碼 代碼如下:
var txtval=escape(document.getElementById("txt").value);
OK, 問題解決!
其他可能還有別的辦法至今沒遇到 希望這個辦法能幫到遇到這種困境的朋友
您可能感興趣的文章:- ajax+php中文亂碼解決辦法
- Javascript和Ajax中文亂碼吐血版解決方案
- JQuery AJAX提交中文亂碼的解決方案
- jquery的ajax()函數(shù)傳值中文亂碼解決方法介紹
- JQuery AJAX 中文亂碼問題解決
- jquery.ajax的url中傳遞中文亂碼問題的解決方法
- JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
- ajax獲取數(shù)據(jù)中文亂碼問題最簡單的完美解決方案