IT兄弟连 JavaWeb教程 AJAX常见问题

1 中文乱码问题

● POST提交乱码

乱码原因:所有浏览器对Ajax请求参数都使用UTF-8进行编码,而服务器默认使用ISO-8859-1去解码,所以产生乱码。

解决方法:在服务器接收请求参数前设置解析编码。

request.setCharacterEncoding("UTF-8");

● GET提交乱码

乱码原因:IE浏览器发送请求时,会默认使用GBK字符集对请求参数进行编码,而其他浏览器会使用UTF-8.服务器默认情况下使用的时ISO-8859-1进行解码,所以产生乱码。

解决方法:在浏览器发送请求前,先将URL利用encodeURI()编码。encodeURI会使用UTF-8对请求地址中的中文进行编码。

var uri = ‘xxx?name=张三‘;

xhr.open(‘get‘,encodedURI(uri),true);

在服务器端进行编码转换:

String name = request.getParameter("name");

name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

2 缓存问题

不同浏览器对于请求相同地址的处理方案如下:

Chrome 重新发送请求

FireFox 重新发送请求

IE 不再发送请求

IE浏览器提供的Ajax对象,在发送GET请求时,会先查看是否访问过该地址,如果该地址访问过,浏览器就不会再发送请求,而是取出先前浏览器缓存的数据内容。

浏览器缓存的解决方案:

s在请求地址后面添加一个系统时间或者一个随机数字,例如:

xhr.open(‘get‘,‘load.do?r=‘ + new Date().getTime(),true);

xhr.open(‘get‘,‘load.do?r=‘ + Math.random());

原文地址:https://blog.51cto.com/14311187/2405092

时间: 2024-10-25 16:18:23

IT兄弟连 JavaWeb教程 AJAX常见问题的相关文章

IT兄弟连 JavaWeb教程 AJAX中参数传递问题

使用Ajax发送GET请求并需要传递参数时,直接在URL地址后拼接参数,格式如下: xhr.open('get','请求路径?参数名1=参数值1&参数名2=参数值2...',true); 使用Ajax发送POSt请求并需要传递参数时,也可以直接在URL地址后拼接参数,这样的话和发送GET请求时没有区别,也可以在send方法中进行参数的传递,而且建议使用send方法进行参数传递,并且需要对请求头做特殊设置,设置Content-Type为URL编码方式,格式如下: xhr.setRequestHea

IT兄弟连 JavaWeb教程 使用AJAX发送POST请求并获取响应

POST请求用于向服务器发送应该被保存的数据,因此POST请求天然比GET请求多需要一份需要被保存的数据.那么这些数据应该放在何处呢?毕竟,我们的open()方法接收的三个参数都没有合适的位置. 答案是需要发送的数据会作为send()方法的参数最终被发往服务器,该数据可以是任意大小,任意类型. 使用Ajax发送POST请求需要使用setRequestHeader()方法设置请求头,代码如下: function PostRequest(){ var xhr = null; if(window.XM

IT兄弟连 JavaWeb教程 jQuery对AJAX的支持经典案例

案例需求:编写用户登陆页面的验证码模块,在用户进行登陆时,输入验证码后不需要点击提交按钮,使用AJAX异步地向服务器发送验证验证码的请求.如果验证码正确,可以点击提交按钮,如果验证码输入错误,提示用户.如果用户看不清验证码,点击验证码还可以刷新出新的验证码. 案例实现: 验证码原理:当页面请求一个验证码的Servlet时,这个Servlet会把数据以图片的形式传给客户端,并把数据以字符串的形式存入了session中.当用户以图片为标准输入对应的验证码并发送给对应的用来验证验证码的Servlet时

IT兄弟连 JavaWeb教程 jQuery对AJAX的支持

jQuery对AJAX的支持 jQuery对Ajax请求的创建.发送.响应.注册数据处理函数.JSON的解析和缓存以及传参等都进行了相应的封装,同时也考虑了浏览器的兼容性问题. jQuery中对AJAX支持核心函数 jQuery中对Ajax支持的核心函数是$.ajax()函数,$.ajax()函数的代码结构如下: $.ajax({ url : 请求地址, type : 请求方式, async : 默认为true,表示异步请求,false表示同步请求, data : 请求参数, dataType

IT兄弟连 JavaWeb教程 jQuery中其他AJAX支持的函数

● $.get()函数 $.get(url,data,function,dataType);参数说明如下: url:请求地址 data:请求参数 dataType:服务器返回的数据类型 function:服务器正常处理时执行的回调函数 ● $.post()函数 $.post(url,data,function,dataType);参数说明如下: url:请求地址 data:请求参数 dataType:服务器返回的数据类型 function:服务器正常处理时执行的回调函数 ● $.getJSON(

IT兄弟连 JavaWeb教程 jQuery对AJAX的支持经典面试题

1.简述对Ajax的理解 AJAX是Asynchronous JavaScript and Xml异步的JavaScript和Xml.它一种用来改善用户体验的技术其实质是使用XMLHttpRequest对象异步地向服务器发请求.服务器返回部分数据,而不是-个完整的页面,以页面无刷新的效果更改页面中的局部内容. 2.什么是JSON,在什么情况下使用? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON采用

IT兄弟连 JavaWeb教程 异步请求对象的API

Ajax的核心是XMLHttpRequest对象(xhr),xhr为向服务器发送请求和解析服务器响应提供了接口,能够以异步的方式从服务器获取新数据. xhr的主要方法有: ● void open(String method,String url,Boolean async) 用于创建请求,参数说明如下: method:请求方式,字符串类型,如GET.POST.DELETE等. url:要请求的地址,字符串类型. async:是否异步,布尔类型,默认是true,异步的. ● void send(S

IT兄弟连 JavaWeb教程 JSON和JSON字符串

JSON (JavaScript Object Notation)是JavaScript语言中的一种对象类型.JSON的好处是易于阅读和解析.当客户端和服务器端需要交互大量数据时,使用JSON格式传输可以简化客户端和服务器端的编程. 1  JSON对象格式 ●  JSON对象格式如下: {"key":value,"key":value,...} 例如:{"name":"兄弟连IT教育","subject":

IT兄弟连 JavaWeb教程 URI、URL

URI介绍 URI(Uniform Resource Identifier),是统一资源标识符的缩写,是一个用于标识某一个Web资源名称的字符串,该标识允许用户对任何资源通过特定的协议进行交互.Web上可用的每种资源,如:HTML.图像.视频和音乐等资源,都由一个统一资源标识符进行标识.URI一般由三部分组成: ● 访问资源的命名机制 ● 存放资源的主机名 ● 资源自身的名称,由路径标识,着重强调于资源 URL介绍 URL(Uniform Resource Locator),统一资源定位符的缩写