JS Ajax取.NET 数据中文问题
本人最近简单写了一个动态取数据的的一个Ajax方法,使用Jquery作为框架,思路如下:首先利用后台把数据存入一个简单的记事本文件中,然后Ajax访问一个Web 页面,Web页面获取记事本文件内容,并返回内容给Ajax,Ajax首页显示数据。但是遇到问题了,问题就是中文的编码问题。当后台取数据给Ajax,Ajax显示数据的时候,则Js报错,显示基于URI的编码错误, 我也问了很多人,查找了许多方法,但是效果都不佳,另外出现了一个让我不可明白的事,为什么有些中文字编码后就是正确的,而有些中文字则报错,望大家帮我解决下!
代码如下:
一、后台将数据存入文件
StreamWriter SW;
SW = File.CreateText(Server.MapPath("/info.txt"));
try
{
string str = "1,检测代码";
SW.Write(str);
}
catch (System.Exception ex)
{
}
finally
{
SW.Close();
}
二、Web页面获取文件数据
string filename = Server.MapPath("/info.txt");
StreamReader sr = new StreamReader(filename, Encoding.Default);
string str = sr.ReadToEnd();
sr.Close();
Response.Write( HttpUtility.UrlEncode(str, System.Text.Encoding.GetEncoding("GB2312")));
三、Jquery获取数据 显示
$.get("/GetInfo.aspx?rm="+Math.random(), {Action:"get",Name:"lulu"}, function (data, textStatus){
var str=decodeURI(data);//有些中文字不会错,有些报错
}
});
各位大家帮忙下!!!!
相关文档:
在《Pragmatic Ajax A Web 2.0 Primer 》中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下:
0: (Uninitialized) the send( ) method has not yet been invoked.
1: (Loading) the send( ) method has been invoked, request in progress.
2: (Loaded) the send( ) method has completed, entire respons ......
使用原始的XMLHttpRequest发出请求时,只能对Servlet和JSP操作
在JSP中创建3个function
1.createXmlHttpRequest----负责判断浏览器类型创建 XMLHttpRequest对象
var xmlHttpRequest;
function createXMLHttpRequest(){
// IE 浏览器
if(window.ActiveXObject){
&nbs ......
struts2版本:struts-2.1.8.1
异常:java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils
原因:jsonplugin-0.34.jar 配合 struts2-core-2.1.8.1.jar 使用的情况下报的异常,但以前的项目中jsonplugin-0.34.jar 配合 struts2-core-2.1.6.jar 使用不会出现这样的异常
解决方法:去掉jsonplugin-0.34 ......
$.ajax({
url: "auto_action.jsp",
type: "POST",
data: {nickName:request.term},
contentType :"application/x-www-form-urlencoded;charset=UTF-8", //加上这句就可以了!
& ......
文件名:ajax.js
/**
* 取得当前页面的url
* 可以在调用ajax_query前修改
**/
var url = location.href.substr(0, location.href.length-location.search.length);
/**
* 给Function对象添加一个取得函数名的方法
**/
Function.prototype.Name = function() {
var s = Func ......