ajax请求需要注意的两个地方

1.在url地址后边以请求字符串(传递的get参数信息)形式传递参数

2.对中文、=、&等特殊符号处理

对特殊符号的处理:

在浏览器里通过get参数传递一些特殊符号信息会被误解混淆,例如& =等。

为了避免特殊符号被误解产生歧义,需要对其进行编码处理

1).在php里边可以使用函数urlencode/urldecode对特殊符号进行编码、反编码处理,(url_encode()可以把中文转变为浏览器可以识别的信息。编码后的信息为%号后接两个16进制数)

2).在javascript里边可以通过encodeURIComponent()对特殊符号等信息进行编码。

编码后的信息可以被正常接收使用,无需反编码。

encodeURIComponent编码

# 用来标志特定的文档位置%23

% 对特殊字符进行编码%25

& 分隔不同的变量值对%26

+ 在变量值中表示空格%2b

\ 表示目录路径 %2f

= 用来连接键和值 %3d

?表示查询字符串的开始 %3f

汉字的每个字节单位转成"%两个十六进制数"。

时间: 2024-10-13 00:51:38

ajax请求需要注意的两个地方的相关文章

angular ajax请求 结果显示显示两次的问题

angular 项目中,由于用到ajax 请求,结果显示如下情况 同样的接口,显示两次,其中第一次请求情况为 request method 显示为opttions 第二次的情况是 为啥会出现如此的情况呢,是因为 调用的接口与发送ajax的页面存在跨域的问题 因此先需要一次HTTP OPTIONS请求,来判断对应server是否允许资源访问. 返回成功后,在调用post访问 参考文章http://stackoverflow.com/questions/12111936/angularjs-perf

struts2 ajax请求发现执行action两次原因

struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次. 原因: struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行解决方法 Action中的业务方法前别加get 或者 set(属性的get set 除外) 用 @JSON(serialize=false)指定方法不序列化如import com.googlecode.jsonplugin.annotations.JSON;

Bootstrap_Datatable Ajax请求两次问题的解决

最近一个项目中使用JQuery Datatable,用起来比较方便,但在测试过程中,发现当条件改变时,有时查询结果中的数据不正确. 使用FireBug跟踪时,发现在使用Ajax请求时,点击一次搜索按钮,却发送了两次请求,一次是原条件的请求,一次是新的请求. 下面是查询按钮的代码.先判断是否是Datatable,如果是的话,先Destroy掉,再重新创建. [javascript] view plaincopy function search(data) { var $searchResult =

关于ExtJS的两种Ajax请求和回调问题(转载)

1. Ext.form.Action.Submit的配置选项success.failure 根据返回json中success属性判断的,如果success为true,则success,false则failure,如果无json中无success属性,failure,故要提示操作是否成功,必须要返回success属性. loginFormPanel.getForm().submit({ method:'POST', params:{ username:username, password:pass

[开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求

项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache     最近在项目中用到了本地缓存localStorage做数据的缓存. 1.简单说下localStorage localStorage和cookies相比,在浏览器中存储的容量更大.另外最大的特点是不会附带在http请求中传给后台,不会像cookies一样导致http头部变大影响传输性能.基于这个原因,localStorage适合缓存一些常用的数据,无需平凡的

Ajax保留浏览器历史的两种解决方案(Hash&Pjax)

总是在github down点东西,github整个界面做的不错,体验也很好~对于其中的源代码滑动的特效最为喜欢了~刚开始以为这个只是普通的ajax请求效果,但是发现这个特效能够导致浏览器地址栏跟随变化,并且再点击前进后退按钮后又可以将代码滑回滑出~~于是乎就来研究下吧~ 一.通过锚点Hash实现: 在这方面其实国内很早就有做了,比如淘宝画报,通过的是在地址栏后面加#锚点实现的,浏览器是可以识别锚点为单位的历史记录的.但不是说页面本身有这个锚点,锚点的Hash只是起到一个引导浏览器将这次的记录推

WebAPI学习日记一:Ajax请求传递参数遇到的问题

首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的态度. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上例子吧,都是我在学习过程中遇到或者发现的一些问题.  一.创建WebAPI项目 (这个环节不是本章重点) 二.传递参数遇

jquery ajax请求成功,返回了数据,但是不进success的问题 【转】

这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了. 这个问题的原因(来自http://www.myexception.cn/ajax/413061.html的拷贝内容): ----

Ajax请求中的async:false/true的作用

最近做东西用到ajax,我在火狐下firebug打断点一点问题都没有,可是关了firebug,程序不进后台方法,纳闷了好久,从来没有遇到过这种情况,最后加了一个参数async:false好了,还是很纳闷,以前写了那么多ajax相关代码从来没遇到过这种情况,原来对asy:nc:false的含义不大了解,还有可能和现在这个平台有关系吧.async boolean default: trueby default, all requests are sentasynchronous (e.g. this