详解jquery中$.ajax方法提交表单

代码如下:
函数 $.ajax({ //调用jquery的ajax方法 type: "POST",//设置ajax方法提交数据的形式 url: "ok.PHP",//把数据提交到ok.PHP data: "writer="+$("#writer").val(),//输入框writer中的值作为提交的数据 success: function(msg){ //提交成功后的回调,msg变量是ok.PHP输出内容。 alert("数据提交成功"); //如果有必要,可以把msg变量的值显示到某个DIV元素中 } }); }

jquery手册描述: data 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1","bar2"]} 转换为 '&foo=bar1&foo=bar2'。 示例:

代码如下:
PHP", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); } });

这里data后面跟的参数可以用二种表式:一种是普通url传参的写法一样,还有一种就是写在json数组里, 上面示例data部分也可以这样写:data: {name:"John",location:"Boston"}。这二个用法有什么区别?

今天在开发中发现二者用法的细微差别。第一种我们用url传参,参数里面如果加带"&"这个符号的话,可能参数接收不到或不完整,如“ data: "name=John&location=Boston",”,

如果name的值是"john&smith"这样写可能就会有问题,我们可以用JS里面的encodeURIComponent()方法进行转义,

但如果用data: {name:"John",location:"Boston"}这种方式写的话就不需要进行转义,如果转义的话,接收的将是转义后的字符串

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...