b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

$.ajax 参数数组 AJAX 用法总结(3)

电脑杂谈  发布时间:2018-01-20 20:02:32  来源:网络整理

//第四步:发送请求

xhr.send('username='+$F('uname'));

}

用GET还是POST?

与POST相比,GET更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用POST请求:

(1)无法使用缓存文件(更新服务器上的文件或)

(2)向服务器发送大量数据(POST没有数据量限制)

(3)发送包含未知字符的用户输入时,POST比GET更稳定也更可靠

ajax编程中的编码问题

(1)发送get请求:

ie浏览器内置的ajax对象,对中文参数使用gbk编码,而其它浏览器(firefox,chrome)使用utf8编码。

服务器端默认使用iso-8859-1去解码。

解决方案:

1)服务器对get请求中的参数使用指定的编码格式进行解码。

比如:对于tomcat,可修改conf/server.xml(添加URIEncoding="UTF-8")

即:告诉服务器,对于所有的get请求,使用utf-8进行编码/解码

2)对请求地址,使用encodeURI函数进行统一的编码(UTF-8)

该函数的作用:对请求地址中的中文进行“UTF-8”编码。

varuri='check_username.action?username='+$F{'username'};

varuri2=encodeURI(uri); //进行编码,欺骗浏览器,防止出现乱码

xhr.open('get',uri2,true);

总结:

解决get请求传递中文参数乱码问题:

(1)修改tomcat下的server.xml,在Connection后添加

URIEncoding="UTF-8",告诉服务器,对于get请求中的数据,使用UTF-8解码。$.ajax 参数数组

(2)在ajax在发送get请求前,添加:

varuri='check_uname.action?uname='+$F{'uname'};

xhr.open('get',encodeURI(uri),true);

用上面2步,可结果ajax中get请求参数中文乱码问题(对所以浏览器都适用).

(2)发送post

所有浏览器内置的ajax对象都会使用utf-8进行编码。

解决方案:

request.setCharacterEncoding("utf-8");

ajax应用中的缓存问题:

当使用IE浏览器时,如果使用get方式发请求,浏览器会将数据缓存起来。

这样,当再此发送请求时,如果请求地址不变,IE浏览器不会真正地向服务器发送请求,而是将之前缓存的数据显示给用户。

解决方式1:使用post方式发请求。

解决方式2:在请求地址后面添加一个随机数:

xhr.open('get','some?tt='+Math.random(),true);

5、发送同步请求

xhr.open('post','check_username.do',false);

AJAX $.toJSON的用法或把数组转换成json类型


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61569-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...