ajax在同步调用的时候如果在url中传参数,并且采用post的方法提交数据的话,使用360se7.0版本就会导致一些参数丢失,
目前只发现在这款浏览器会产生这个问题,但是异步调用就没有问题。
根据HTTP的规范,get和post都是与服务器交互的方法,其中get用于查询获取资源,而post用于提交和更新资源信息,另外还有2种方法put和delete(这两种方法很少用),也就是说get方法不会修改变更数据,很像数据库中的select查询关键字。同理post是要修改服务器上的资源,比如对文章进行评论就需要使用post方法。
二者还有一个重要的差别是get请求的数据都会以明文的形式展示着url中,以?分隔开URl和传输数据,以&连接参数,如果是空格就转换成+,如果是中文就转换成16进制,这些数据回作为URL的一部分被放置在http的协议头中,另外参数个数及URL的长度http规范并没有刻意限制,只是部分浏览器或服务器操作系统进行了限制;post不会把提交的数据不会放置在协议头中而是放置在包体中,不会在url中直接展示数据明文,从这个角度来看post的方法更安全。
jQuery.ajax({
url: testbase+"/shopping/config_new!ajaxAge.action",url: sinosoft.base+"/shop/order_config_new!ajaxAge.action?applicantBirthday="+brithday+"&productId="+productId+"&effdate="+effective,
dataType: "json",
type:"POST",
async: false,
success: function(data) {
if(!data){
alert("XXXXXXXXXXXXXXXX");
tFlag = false;
}else{
tFlag = true;
}
}
});
该段代码的目的是想通过ajax的同步调用,提交数据到后台,校验后返回json对象,通过判断json对象返回警告信息该用户,但现象时用户直接就收到了警告信息,分析原因可能如下:1、实际进行了异步调用;2、校验异常,返回的json对象有误;3、默认使用的get方法,在此浏览器下与type:"POST"冲突;
- 上一篇: nginx负载均衡实现实战
- 下一篇: 手机端苹果safari浏览器的一个坑!
评论