关于ajax

问题描述

function toAgentQuery(){ url = 'getEmpMes.do'; sendRequest(url); var xmlhttprequest = false; function sendRequest(url){ //broswer if(window.XMLHttpRequest){ [size=medium][/size]xmlhttprequest = new XMLHttpRequest(); }else if(window.ActiveXObject){ try{ xmlhttprequest = new window.ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlhttprequest = new window.ActiveXObject("MSXML2.XMLHTTP"); } } if(!xmlhttprequest){ alert("can't create XMLHttpRequest"); } xmlhttprequest.onreadystatechange = show; xmlhttprequest.open("GET",url,true); xmlhttprequest.send(null); } function show(){ alert(xmlhttprequest); alert(xmlhttprequest.readyState); if(xmlhttprequest.readyState == 4){ alert(1111); alert(xmlhttprequest.status); if(xmlhttprequest.status == 200){ alert(2323); var flag = xmlhttprequest.responseText; alert(flag); document.getElementById("pub").innerHTML = flag; } } } }这是我的一个ajax 我想问当我把open的最后一个值设置为同步,也就是false时:xmlhttprequest.readyState 值没问题从1一直到4成功,xmlhttprequest.status也是200,但是加载出来的页面是空白的,flag的值也是空的 ,当我将open最后一个值设置为true时也就是异步时,alert(xmlhttprequest);第一次是1然后就变成undefined了 各位大虾,到底是怎么回事啊? 问题补充:garson328 写道

解决方案

从你的代码来看,确实有些让我看不明白,第一个function toAgentQuery()的{没结束就出现第二个function sendRequest(url)了。而最后一行多了个},是不是你一直在用这种嵌套function?
解决方案二:
responseText还是不要在同步下获取,ajax同步模式下,你的show函数是正常的回调函数,所以能够执行,但responseText在同步模式下是获取不到服务端写入的数据的。ajax异步模式下,回调函数虽说能够执行多次,但上例中你的xmlhttprequest却被视为只声明了一次,也就是第二次undefined了,而同步模式下每次都会声明一次,所以你在同步模式下出现1——4是正常的。简单地说,同步模式页面每次都会刷新,所以前端js代码每次都会重新执行,而异步模式在提交到后端的同时,前端js还在进行无刷新的执行,所以你的xmlhttprequest只在第一次才有效。
解决方案三:
这是因为设置同步的时候,等到服务器返回的时候,responseText是空字符串这是因为设置异步的时候,并没有服务器返回,你就alert(flag)了,因为这个时候服务器还没有返回,所以responseText 还没有值,就成undefined了

时间: 2024-10-01 08:32:22

关于ajax的相关文章

Ajax 提交表单数据到入库的全盘操作流程

 以下是Ajax 提交表单数据到入库的全盘操作流程,希望本文对广大php开发者有所帮助,感谢阅读本文 *******php项目中当我们要对数据库进行写入操作时,有时会因为代码没有做防sql注入工作,导致各种不可预知的错误*******    1,index.htm 这是一个很简单的注册页面l 我这是以ajax形式提交数据   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt

ajax浏览器兼容的问题探讨

 ajax浏览器兼容的问题一直都是同学们多烦恼的,下面有个不错的示例大家可以参考下,希望对大家有所帮助  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xht

ajax同步异步的简单实现

本文为大家介绍下ajax同步异步的简单实现,感兴趣的朋友可以参考下 复制代码 代码如下: $("#btn_saveFWSB").click(function(){  var obj=checkData(arr);  if(obj.flag==true){  hideAddDiv();  $.ajax({  type : "POST",  url : "/vts/doInsertFWZT.do",  async: false ,//ajax同步 

$.ajax传JSON数据到后台出现报错问题解决

 $.ajax传JSON数据到后台时总会出现一些错误,本文整理了一些注意事项,感兴趣的朋友可以参考下 代码如下: $.ajax({  url: "../Services.ashx",  type: "POST",  //data: { 'data': { 'typename': JSON.stringify(typename) }, 'operationType': '2' },  data: { 'data': typename, 'operationType':

利用PHP+JavaScript打造AJAX搜索窗

一. 引言 Web世界中一项广为使用的功能就是搜索.随着Web技术的日益发展,为了更好地满足客户的需求,常规搜索引擎开始对更多的非常规方式"敞开了大门".在这方面,Yahoo!率先提供出其Y!Q服务.这个新的服务能够使你搜索任何web页面,前提是该页面的作者必须包括在他们的web页面中.是服务技术实现了把相关的搜索结果呈现到读者眼前,从而向读者展示更多的信息而不必离开他们的当前页面. Yahoo!的Y!Q服务的确是一个伟大的想法,但是它的出现也受到了一些批评.原因何在?首先,它要求客户

使用PHP JavaScript制作AJAX搜索引擎

一. 引言 Web世界中一项广为使用的功能就是搜索.随着Web技术的日益发展,为了更好地满足客户的需求,常规搜索引擎开始对更多的非常规方式"敞开了大门".在这方面,Yahoo!率先提供出其Y!Q服务.这个新的服务能够使你搜索任何web页面,前提是该页面的作者必须包括在他们的web页面中.是服务技术实现了把相关的搜索结果呈现到读者眼前,从而向读者展示更多的信息而不必离开他们的当前页面. Yahoo!的Y!Q服务的确是一个伟大的想法,但是它的出现也受到了一些批评.原因何在?首先,它要求客户

利用PHP+&amp;#106avascript打造AJAX搜索窗

ajax 一. 引言 Web世界中一项广为使用的功能就是搜索.随着Web技术的日益发展,为了更好地满足客户的需求,常规搜索引擎开始对更多的非常规方式"敞开了大门".在这方面,Yahoo!率先提供出其Y!Q服务.这个新的服务能够使你搜索任何web页面,前提是该页面的作者必须包括在他们的web页面中.是服务技术实现了把相关的搜索结果呈现到读者眼前,从而向读者展示更多的信息而不必离开他们的当前页面. Yahoo!的Y!Q服务的确是一个伟大的想法,但是它的出现也受到了一些批评.原因何在?首先,

急!!!!ajax responseText的问题

问题描述 急!!!!ajax responseText的问题 5C 先贴代码 if(new_!=renew_){ alert(""输入的两次密码不同""); return false; }else{ var url= ""<%=basePath%>/system/password/reset1""; var pars =""oldPassword=""+encodeURICo

Ajax autocomplete 功能问题

问题描述 请问我ABC.aspx页面上,同一个页面内有2个Textbox都需要有autocomplete功能我如果这样写-两个TextBox都会绑上这个功能,但是问题来了varparam={deptName:$('#txbDep1').val()};这边我不知道如何判断,是要取哪一个TextBox上打的东西难道只能把这这堆Code在复制一份出去写成$('#txbDep2').autocomplete({......$('#txbDep1').autocomplete({...........$(

IE8 jquery ajax获取静态资源报错TypeError 拒绝访问

1,出现问题的代码: Js代码   /***      * 请求静态html 模板      * @param url      * @param $jqueryDiv : 四个主要div之一      * @param templateHandle : 自定义,用于使用Dot js模板函数      * @param callback : 用于实现模板之后,绑定事件      * @param templateData : cia的返回数据      */      ajaxHtml: fun