`

ajax问题二则

阅读更多

今天做一个网站的时候,在用户登录的时候尝试了使用ajax的post异步传递方式来验证用户

之前只研究过get传递方式的,都没弄过post的= =!这次趁这个机会尝试了下post,找了点资料,发现都没什么难度,跟get区别不是很大 = =!其实我还是一个ajax新手。。。。。这是真的,因为我对ajax的研究非常少。。

这里就顺便替另一个问题,以前我用jsp做ajax的时候,用的是过滤器,所以没有中文乱码的问题,今天用asp做了后,由于服务器相应的页面没有设置编码,所以返回的时候就出现了乱码,所以呢这里就提供个解决乱码的方案,网上找的哈~最后一个asp是我自己加上去的 = =!

PHP:header('Content-Type:text/html;charset=GB2312');
JSP:response.setHeader("Charset","GB2312");
ASP:Response.Charset = "GB2312"

在相应的语言中加入相应的编码设置代码即可,其实JSP的方法比较多,例如我用的过滤器,这里就只说最简单的一种了

然后就要说我今天遇到的一个差点头大的问题。。哈哈,幸好头没大。。。。

在用户登录,并且服务器异步响应一次之后,第二次就不灵光了。。。我郁闷的很,一定要刷新一次网页后才重新有效,这个问题很奇怪,我反复查了我的代码。。。都没有发现错误的地方。

但肯定有问题存在的。。。然后。。欣水在经过一番冷静的思考之后。。终于找到了元凶!原来是我在参考post传递方式的时候。。。就在那时候。。。也就是说,就是那个时候,我一时懒惰,把别人的代码复制过来稍微改了改,结果照别人的代码把onreadystatechange的结果写在了open的前面。。。于是乎,我意识到了这个结局,一次性的结局,服务器永远只会响应一次,因为open只能执行一次 = =!

这就是我错误的代码:
       var param="uname="+uname+"&upwd="+upwd+"&way=1";
    request.onreadystatechange = updatePage;
       request.open("post","logincheck.asp",true);
       request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");  
       request.send(param);

立刻把onreadystatechange搬了下去,几乎就把它从顶楼搬到了底楼,终于。。。整个世界如果我所料般的。。不再只是一次性了hoho

这就是我纠正后正确的代码:
       var param="uname="+uname+"&upwd="+upwd+"&way=1";
       request.open("post","logincheck.asp",true);
       request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");  
    request.onreadystatechange = updatePage;
       request.send(param);

希望对遇到同样问题的朋友有所帮助,因为我一开始发现这个问题的时候在网上没有发现有相关资料的,所以这里写出来以方便以后的朋友用到,嘿嘿

现在突然想到,那个提供代码的朋友。。。。不知道他是不是也遇到过同样的问题,又或者他的ajax只需要执行一次,所以没有发现我上面阐述的。。问题。。。

 
分享到:
评论

相关推荐

    Struts2与Ajax 精简源码

    Struts2与Ajax 的实现原理,于Servlet+Ajax原理是一致的,都是通过后台的response.getWriter().print("");把数据传输给前台的。 前台Ajax格式如下(需要导入ajax库,比如:jquery-1.11.3.js) 格式: $(function()...

    struts2ajax项目

    本人自己写的struts2结合jquery实现ajax的源码。

    Professional Ajax, 2nd Edition.pdf

    Professional Ajax, 2nd Edition.pdf

    ajax快速解决参数过长无法提交成功的问题

    在ajax中使用post方法,用常规的参数格式:param1=a1&param2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求: $.ajax({ type: "post", // post or get contentType:"application...

    smarty ajax 下拉框二级联动

    Smarty + Ajax 下拉菜单二级联动: 1. 建立数据库ajaxtest (使用utf8) 2. 进行conn.php 修改root密码 3. 导入表 product.sql --- 主产品 4. 导入表 producttest.sql -- 二级产品 弄好后运行:...

    Ajax-magento2-ajax-layered-navigation.zip

    Ajax-magento2-ajax-layered-navigation.zip,ajax分层导航magento 2提供了一个过滤器列表,帮助您的客户以最短的方式搜索和获得他们最喜欢的产品。这个扩展应用了现代ajax技术来增强过滤系统,以提高用户对页面上每...

    JavaScript读二进制文件并用ajax传输二进制流的方法

    主要介绍了JavaScript读二进制文件并用ajax传输二进制流的方法的相关资料,需要的朋友可以参考下

    Struts 2 and Ajax

    因此,Struts 2其中的一个重要的功能(Feature)就是“First-class AJAX support - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags(大意:一流的AJAX支持...

    struts2 ajax实现的二级联动

    struts2 ajax实现的二级联动 struts2 ajax实现的二级联动

    ssh2 ajax jquery

    我自己有点用,网上也有 ssh2 ajax jquery 知识 ssh2 ajax jquery 知识 ssh2 ajax jquery 知识 ssh2 ajax jquery 知识

    php+ajax二级联动

    php+ajax 二级联动 无刷新实现省市县联动。

    ajax请求之返回数据的顺序问题分析

    本文实例分析了ajax请求之返回数据的顺序问题。分享给大家供大家参考,具体如下: ajax请求一个url,php后端处理后,数组为如下格式: 代码如下:$a = array( ‘-1’=> 10 ,’-3′ => 2, ‘0’ => ‘5’ ,’-2′ => ...

    CH2.Ajax 框架

    2.把服务器方法添加属性 AjaxMethod。(例一) 3.添加一个一般处理程序,继承于 AjaxHandler<T> (T 为服务器方法的类名) 。(例二) 4.页面中引用两个js。(例三) 5.准备工作完成了。ajax 调用服务器方法,只...

    Struts2与AJAX

    Struts2与AJAX

    Ajax-magento2-ajax-cart-quick.zip

    Ajax-magento2-ajax-cart-quick.zip,magento 2 ajax购物车扩展插件提供舒适的购物体验。客户可以很容易地选择可配置的选项并在弹出窗口中编辑项目,而不会浪费重新加载页面的时间。,ajax代表异步javascript和xml。它...

    掌握Ajax 学习资料pdf

    掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM 掌握 Ajax第 6 部分-建立基于 DOM...

    Struts2+Jquery+Ajax

    MVC Struts2框架搭建,Jquery Ajax异步数据交互,内涵需要的jar包及ppt讲解

    Ajax Bible

    Chapter 2 - Know Your JavaScript Chapter 3 - Creating Ajax Applications Chapter 4 - Serious Ajax Programming Part II - Ajax in Depth Chapter 5 - Introducing Ajax Frameworks Chapter 6 - More...

    ajax 省市二级联动

    利用ajax无刷新省市二级联动 直接可以使用啊啊

    AJAX和struts2传递JSON数组

    利用AJAX传递JSON数组,后台struts2的action接收。 详细代码简单易懂。

Global site tag (gtag.js) - Google Analytics