- 浏览: 13731742 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
浅谈ajax中get与post的区别,以及ajax中的乱码问题的解决方法
一.谈Ajax的Get和Post的区别
Get方式:
用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及
其数据按照URL参数的格式附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器的历史记录中,
读取到此客户的数据,比如帐号和密码等。因此,在某些情况下,get方法会带来严重的安全性问题。
Post方式:
当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多。
总之,GET方式传送数据量小,处理效率高,安全性低,会被缓存,而POST反之。
使用get方式需要注意:
1 对于get请求(或凡涉及到url传递参数的),被传递的参数都要先经encodeURIComponent方法处理.例:var url =
"update.php?username=" +encodeURIComponent(username) + "&content="
+encodeURIComponent
(content)+"&id=1" ;
使用Post方式需注意:
1. 设置header的Context-Type为application/x-www-form-
urlencode确保服务器知道实体中有参数变量.通常使用XmlHttpRequest对象的SetRequestHeader("Context-
Type","application/x-www-form-urlencoded;")。例:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2.参数是名/值一一对应的键值对,每对值用&号隔开.如 var name=abc&sex=man&age=18,注意var name=update.php?
abc&sex=man&age=18以及var name=?abc&sex=man&age=18的写法都是错误的;
3.参数在Send(参数)方法中发送,例: xmlHttp.send(name); 如果是get方式,直接 xmlHttp.send(null);
4.服务器端请求参数区分Get与Post。如果是get方式则$username = $_GET["username"]; 如果是post方式,则$username = $_POST["username"];
Post和Get 方法有如下区别:
1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
get 方法用Request.QueryString["strName"]接收
post 方法用Request.Form["strName"] 接收
注意:
虽然两种提交方式可以统一用Request("strName")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题
AJAX乱码问题
产生乱码的原因:
1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码
2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码
解决办法有:
1、若客户端是gb2312编码,则在服务器指定输出流编码
2、服务器端和客户端都使用utf-8编码
gb2312:header('Content-Type:text/html;charset=GB2312');
utf8:header('Content-Type:text/html;charset=utf-8');
注
意:如果你已经按上面的方法做了,还是返回乱码的话,检查你的方式是否为get,对于get请求(或凡涉及到url传递参数的),被传递的参数都要先经
encodeURIComponent方法处理.如果没有用encodeURIComponent处理的话,也会产生乱码.
实例:
POST
x = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... x = new XMLHttpRequest(); if (x.overrideMimeType) x.overrideMimeType('text/html'); } else if (window.ActiveXObject) { // IE try { x = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { x = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!x) { alert('Cannot create XMLHTTP instance'); return false; } if (document.getElementById) {var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); } if (x) { x.onreadystatechange = function() { if (x.readyState == 4 && x.status == 200) { document.getElementById(displayid).innerHTML = x.responseText; document.getElementById(id).innerHTML = ''; } } if(parametros!='') parameters='ajaxid=' + parametros; else parameters=''; url=programa; x.open('POST', url, true); x.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); x.setRequestHeader("Content-length", parameters.length); x.setRequestHeader("Connection", "close"); x.send(parameters); }
GET
x = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... x = new XMLHttpRequest(); if (x.overrideMimeType) x.overrideMimeType('text/html'); } else if (window.ActiveXObject) { // IE try { x = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { x = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!x) { alert('Cannot create XMLHTTP instance'); return false; } if (document.getElementById) {var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); } if (x) { x.onreadystatechange = function() { if (x.readyState == 4 && x.status == 200) { document.getElementById(displayid).innerHTML = x.responseText; document.getElementById(id).innerHTML = ''; } } if(parametros!='') url=programa+'?ajaxid=' + parametros; else url=programa; x.open("GET", url, true); x.send(null); }
发表评论
-
使用jQuery和Pure.CSS创建一个可编辑的表格
2016-08-26 02:24 1236使用开源组件真的可以 ... -
2016十大优秀jQuery插件推荐
2016-08-26 02:24 2339当有限的开发知识限制了设计进展,你无法为自己插上创新的翅膀时 ... -
jQuery .tmpl() 用法
2016-08-26 02:22 1221参考效果: DEMO 下载: jquery-tmpl-ma ... -
jQuery:从零开始,DIY一个jQuery(2)
2016-08-19 03:06 1062在上篇文章我们简单实 ... -
jQuery:从零开始,DIY一个jQuery(1)
2016-08-19 03:00 996从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅 ... -
Bootstrap 3: 菜单居中 Center content in responsive bootstrap navbar
2016-08-18 06:15 1597先看上面图片的效果,下面是代码: .navbar .nav ... -
jQuery: 操作select option方法集合
2016-08-18 06:06 3351每一次操作select的时候,总是要谷歌一下资料,真是太不爽 ... -
jQuery: 插件开发模式详解 $.extend(), $.fn, $.widget()
2016-08-16 05:31 1252原文:http://www.codeceo.com/arti ... -
jQuery: 选择器(DOM,name,属性,元素)
2016-08-11 01:17 4515出处:http://www.cnblogs.com/star ... -
jQuery: 合并表格中相同文本的相邻单元格
2016-08-01 08:02 1387一、效果 二、代码 <!DOCTYPE ... -
Bootstrap 3: 使用注意box-sizing细节及解决方法
2016-08-01 07:58 1603一、bootstrap样式 在Bootstrap v3.3 ... -
域名详解
2016-07-29 12:51 863域名 域名就是用来唯 ... -
Bootstrap 3: 图标转换事件 Change icons when toggle
2016-07-20 13:39 2323代码: <link href="http: ... -
Bootstrap 3: 图标转换事件 Change icons when toggle
2016-07-19 07:12 766代码: <link href=" ... -
jQuery:无限循环两个或者多个事件 click / toggle between two functions
2016-07-19 07:12 1646插件: (function($) { $.fn. ... -
javascript 中面向对象实现 如何继承
2016-07-14 01:01 548上一篇博客已经说了关于javascript中的封装, 其中也 ... -
javascript 中的面向对象实现 如何封装
2016-07-12 12:27 1229javascript 是一门很灵活的语言,也是一门有缺陷的语 ... -
AngularJS jQuery 共存法则
2016-06-14 05:26 3628寻找正确的方法,如何在AngularJS里使用jQuery ... -
七步从Angular.JS菜鸟到专家(3):数据绑定和AJAX
2016-06-04 05:28 1165AngularJS学习列表:七步 ... -
七步从Angular.JS菜鸟到专家(2):Scopes
2016-06-04 05:27 736AngularJS学习列表:七步走 Angular.js 从 ...
相关推荐
### AJAX POST 与 GET 提交的区别详解 #### 一、GET与POST基本概念及应用场景 在探讨AJAX中GET和POST的区别之前,我们先来了解一下这两种请求方式的基本概念。 **GET**请求通常用于获取资源信息,它将参数拼接到...
在本文中,我们将深入探讨这个问题,以及如何通过不同的方法来解决它。 首先,我们需要了解什么是Ajax GET请求。Ajax,全称Asynchronous JavaScript and XML,是一种在无需刷新整个页面的情况下与服务器交换数据并...
本文将深入探讨如何使用PHP和Ajax解决GET和POST请求中的中文乱码问题,并结合MySQL数据库实现数据的交互。 首先,PHP是一种服务器端的脚本语言,常用于Web开发,可以生成动态网页内容。在处理中文字符时,我们需要...
在本文中,我们将深入探讨如何解决使用Ajax进行POST请求时出现的中文乱码问题。首先,我们要理解Ajax中文乱码的根源,它通常涉及到字符编码的不一致,尤其是在客户端与服务器之间的通信过程中。 Ajax(Asynchronous...
总的来说,解决Ajax乱码问题的关键在于理解字符编码的工作原理,确保数据在整个传输过程中的编码与解码一致性,以及正确设置服务器和客户端的编码设置。在实际应用中,还应考虑跨平台和跨浏览器的兼容性,以确保解决...
在这个教程中,我们将深入探讨AJAX的GET和POST提交方式,以及它们在实现用户名搜索功能时的区别,同时也会解决可能出现的中文乱码问题和缓存问题。 首先,GET和POST是HTTP协议中的两种主要请求方法,它们在AJAX中...
### AJAX在POST中文时解决乱码的方法 #### 一、问题背景 在使用AJAX进行数据请求时,尤其是在处理中文字符的过程中,经常会遇到一个常见问题:即通过AJAX请求得到的`responseText`中的中文字符出现乱码。这个问题...
在使用Ajax进行POST提交时,中文字符可能会遇到乱码问题,这是因为数据在传输过程中编码与解码不匹配导致的。Ajax以UTF-8编码发送数据,但服务器端可能使用了不同的字符集(如GB2312)来解析,这就产生了乱码。本文...
在Web开发中,Ajax(Asynchronous ...总结,解决Ajax乱码问题主要涉及数据编码、请求头设置和服务器端解码,而页面传值则需根据需求选择适当的方法。理解并熟练运用这些技巧,能显著提升Web应用的性能和用户体验。
### Ajax中文乱码问题解决方案 在进行Ajax编程时,经常会出现中文乱码的问题,这主要是因为客户端和服务端之间编码设置不一致导致的。为了解决这个问题,我们需要从多个角度出发来确保数据传输过程中字符编码的一致...
总之,Ajax乱码问题主要涉及前端和后端的编码一致性以及数据传输格式。通过确保数据编码与解码的一致性,并在必要时调整Content-Type和响应头,可以有效避免乱码问题。在实际开发中,应始终关注字符编码的正确使用,...
#### 三、解决Ajax乱码的方法 1. **GET请求乱码解决方案**: - 客户端在发送GET请求前,可以使用`encodeURIComponent`函数对参数进行编码,确保参数的正确传输。 - 服务器端通过`request.getParameter()`获取到...
总结起来,解决AJAX的GET和POST请求中的乱码问题主要涉及两方面:一是服务器端设置正确的响应字符编码,二是客户端确保请求数据的编码和解码过程与服务器端匹配。通过上述方法,可以有效地避免在处理非ASCII字符时...
- 使用POST请求而非GET,因为POST请求的数据不在URI中,不会受到浏览器URI编码限制,乱码问题相对较少。 - 如果可能,尽量使用标准的UTF-8编码,因为UTF-8是更广泛支持的国际化编码标准。 总结来说,解决Ajax URI...
### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...
以前在新浪博客写过js调用AJAX时Get和post的乱码解决办法,但是使用js代码比较繁琐,我们在使用ajax进行数据交互时可以使用js的一个成熟框架—jQuery。 一个网站的设计,不管是注册登录还是分页查找,都需要提交参数...
2.解决JQuery的Ajax中Post方法传递中文出现乱码的方法: a.使用JavaScript的escape()函数处理:在传递中文参数之前,使用escape()函数对参数进行处理。这样可以将中文字符转换为十六进制数,避免了在传输过程中...
**Ajax乱码问题及解决方案:** 1. Ajax返回数据乱码通常是由于服务器返回的字符编码与客户端页面编码不一致导致的。 2. POST提交数据乱码可能是服务器端编码与客户端编码不匹配。 3. 解决方案包括确保服务器和客户端...
本实例将探讨如何在Java后端和Ajax前端交互过程中解决字符编码问题,防止出现乱码。 在Java中,处理字符编码的关键在于正确设置输入流和输出流的编码。当接收到Ajax请求时,服务器需要正确识别请求中的编码,同时在...