读书人

JS传汉字到ashx成为乱码了

发布时间: 2013-09-06 10:17:17 作者: rapoo

JS传汉字到ashx变成乱码了
js里alert还是汉字,传到ashx变成乱码,在网上查说加那个contentType什么的utf-8,可没说在哪加怎么加?试了好多还是乱码。。。

function getFileName() {
var path = document.getElementById("Main_FileUpload1").value;
var pos1 = path.lastIndexOf("\\");
var pos2 = path.lastIndexOf(".");

var pos = path.substring(pos1 + 1, pos2);
alert(pos);

var xhr = createXhr();
xhr.open("get", "AjaxTest.ashx?name=" + pos, true);
xhr.setRequestHeader("contentType", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.responseText == "y") {
alert(xhr.responseText);
} else {
alert(xhr.responseText);
}
}
}
xhr.send(null);
}


ASHX
<%@ WebHandler Language="C#" Class="AjaxTest" %>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Haiyang.DAL;
using System.IO;


using Haiyang.Model;

public class AjaxTest : IHttpHandler {

Haiyang.Model.Project p = new Haiyang.Model.Project();
Haiyang.DAL.ProjtectDAL pd = new Haiyang.DAL.ProjtectDAL();

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string s=null;
if (context.Request.QueryString["name"]!=null)
{
s= context.Request.QueryString["name"].ToString();
}
System.Threading.Thread.Sleep(200);

if (pd.check(s))
{
context.Response.Write("S"+s+"S");
}
else
{
context.Response.Write(context.Request.QueryString["name"]+"重复了");
}
}
}


到底在哪加???而且我发现这代码谷歌,火狐好使,IE,搜狗完蛋 JavaScript ajax asp.net ashx
[解决办法]
JS:
xhr.open("get", "AjaxTest.ashx?name=" + encodeURI(pos), true);
ASHX:
URLDecoder.decode();
;


[解决办法]
JS:
xhr.open("get", "AjaxTest.ashx?name=" + encodeURI(pos), true);
ASHX:
context.Server.HtmlDecode(context.Request.QueryString["name"].ToString())

读书人网 >asp.net

热点推荐