上篇文章错误修真(关于Ajax框架中文乱码问题心得)
var file = filefromPath(encodeURI(encodeURI(this._input.value)));//黄羽修改 2010年4月8日 //修改后
不好意思那天没有在IE测试
应该改为:
var file = encodeURI(encodeURI(filefromPath(this._input.value)));//黄羽修改 2010年4月9日
理由:filefromPath函数是用来过滤路径,只取文件名,所以应先取路径,后加转码
经验:在我使用有些ajax框架时,关于中文乱码问题解决,我们可以去修改ajax框架源码,在找到获取页面数值的地方加上encodeURI(encodeURI())转码(如果框架有过滤,应考虑加的地方,先过滤,后转码)。在服务器端我们要考虑转后的数值要解码URLDecoder.decode()可能又时要解多次。原因是,我们修改框架源码时,可能里面多次用encodeURI(encodeURI())转码过,除非你认真看源码考虑加的最佳位置
相关文档:
首先把代码给大家,下面是解释
/**
* 获得XMLHttpRequest对象
*/
function createXHR(){
var x=[function(){return new ActiveXObject("Msxm12.XMLHTTP");},function(){return xmhttp=new ActiveXObject("Microsoft.XMLHTTP");},
&nb ......
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLhTTP");
}
else if(window.XMLHttpRequest){
xmlHttp=new ......
标准XMLHttpRequest操作
abort()
停止当前请求
getAllResponseHeaders()
把HTTP请求的所有响应首部作为键/值对返回
getResponseHeader("header")
返回指定首部的串值
void open(string method, string url, boolean asynch)
建立对服务器的调用。method参 ......
1.记住下面三句话:
<1>异步应用程序是用JavaScriptt对象作出请求,而不是提交表单
<2>请求与响应是由Web浏览器处理,而不是直接由JavaScript代码处理
<3>一旦Web浏览器得到异步请求的响应,它会以服务器的响应“回头调用”JavaScript代码(这 ......