jQuery.ajax不能实现return值调用问题

转自:http://www.cnblogs.com/satng/

我们使用jQuery.ajax函数是不能实现success方法return值的,而有时候我们需要对成功返回的数据进行处理,一般来说,与服务器交互后会返回很多的数据,而有些数据需要进行特别处理,这时需要实现success方法return,但jQuery.ajax中是无法实现的,传统的jQuery.ajax使用如下:

  1. jQuery.ajax({
  2. type: "POST",
  3. url: "some.php",
  4. data: "name=John&location=Boston",
  5. success: function(msg){
  6. return msg;
  7. }
  8. });

如上:return msg;操作是无效的。

我们与服务器交互后,返回数据在msg中,但我们需要实现一个return,那么如何解决这个问题。

思路,通过传入一个函数,jQuery.ajax触发success事件调用这个函数,并把返回的数据msg传递给传入的函数,实现函数对数据的处理。

为了解决这个问题,写了一个实例,分别有三个文件,一个html文件、js文件和PHP文件。

实例分析: 一,JS部分

  1. var biuuu = {};
  2. biuuu._ajax = function(url,data,datatype,_success_func,_error_func){
  3. jQuery.ajax({
  4. type:"post",
  5. url:url,
  6. data:data,
  7. dataType:datatype,
  8. success:function(info){
  9. _success_func(info);
  10. },
  11. error:function(){
  12. _error_func();
  13. }
  14. });
  15. }

传入四个参数,分别是 url:是处理ajax提交的PHP文件,如下:biuuu.php data:传入的post数据,如下:do=test datatype:表示数据类型,如下:json _success_func:处理成功操作的函数名,如下:biuuu.succfunction _error_func:处理失败操作的函数名,如下:biuuu.failfunction

二,HTML部分(触发事件)

  1. <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
  2. <script type="text/javascript" src="biuuu.js"></script>
  3. <script type="text/javascript">
  4. <!--
  5. jQuery(document).ready(function(){
  6. jQuery("#open").click(function(){
  7. biuuu._ajax("biuuu.php",‘do=test‘,‘json‘,biuuu.succfunction,biuuu.failfunction);
  8. });
  9. });
  10. biuuu.succfunction = function(info){
  11. alert(info.message);
  12. }
  13. biuuu.failfunction = function(){
  14. alert(‘fail‘);
  15. }
  16. //-->
  17. </script>
  18. <a href="#" id="open">test</a>

当点击test后,触发ajax提交,实功调用biuuu.succfunction函数,失败调用biuuu.failfunction函数

三,PHP部分

  1. <?php
  2. $info = array (‘message‘ => ‘biuuu is success‘,‘bool‘ => TRUE );
  3. print_r ( json_encode ( $info ) );
  4. exit ();
  5. ?>

返回一个json数据

解决方法其实很简单,用传入函数名的方法来解决jQuery.ajax不能实现return值调用问题。

点我下载 如果解决jQuery.ajax不能实现return值调用问题 实例

时间: 2024-08-05 13:42:45

jQuery.ajax不能实现return值调用问题的相关文章

Django1.7+JQuery+Ajax集成小例子

Ajax的出现让Web展现了更新的活力,基本所有的语言,都动态支持Ajax与起服务端进行通信,并在页面实现无刷新动态交互. 下面是散仙使用Django+Jquery+Ajax的方式来模拟实现了一个验证用户注册时,用户名存在不存在的一个小应用.注意,验证存在不存在使用的是Ajax的方式,不用让用户点击按钮验证是否存在. 截图如下: 页面HTML代码如下: <!DOCTYPE html> <html> <head lang="en"> <meta

JQuery ajax 在aspx中传值和取值

传值:ajax中的data(json)  js代码: <script type="text/javascript"> $(function () { $("#btnAddNews").bind("click", function () { var _name= $.trim($("#txtNewTitle").val()); $.ajax({ type: "POST", url: "A

jquery ajax跨域的完美解决方法(jsonp方式)

ajax跨域请求的问题,JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式,接下来为大家详细介绍下客户端JQuery.ajax的调用代码 今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式.分别是JQuery的 jquery.ajax jsonp格式和jquer

jQuery Ajax -附示例

jQuery其实就是一个JavaScript的类库,其将复杂的功能做了上层封装,使得开发者可以在其基础上写更少的代码实现更多的功能. jQuery 不是生产者,而是大自然搬运工. jQuery Ajax本质 XMLHttpRequest 或 ActiveXObject 注:2.+版本不再支持IE9以下的浏览器 时机: 如果发送的是[普通数据] -> jQuery,XMLHttpRequest,iframe 如果发送的是[文件] -> iframe,jQuery(FormData对象),XMLH

jQuery.ajax(url,[settings])

概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性. 最简单的情况下,$.ajax()可以不带任何参数直接使用. 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置. 回调函数 如果要处理$.ajax()得到的数据,则需要使用回调函数.beforeSen

Java程序员之JS(一) 之 JQuery.ajax

背景:紧着现在项目的需要,先从JQuery.ajax出发,主要需求是通过 js 调用Java 代码,从而适应现在的项目. 先从几个概念开始讲解: 一. 什么是Deferred  Deferred 对象是由.Deferred构造的, .Deferred被实现为简单工厂模式.它是用来解决JS中的异步编程,遵循 Common Promise/A规范,实现此规范的还有when.js 和 dojo. Deferred 对象在 JQuery 1.5被引入,用来解决 Ajax 异步优化问题,正是由于 Defe

Jquery Ajax调用aspx页面实例

目前,我会的几种asp.net界面与后台代码交互方式有几种: 1.webform+服务器控件交互: 2.webform+jquery+ajax+一般处理程序交互: 3.webform+jquery+ajax+Webservice/WCF交互: 4.MVC: 5.webform+jquery+ajax直接交互: 其中第1种交互是入门级,发展级为第2与第3,交互方式类似,也是我常用的开发方式.第4种最近几年才出现,玩过,用于项目比较少. 现在记录一下第5种交互方式. 第一步:准备页面代码: <!DO

Jquery Ajax时 error处理 之 parsererror

Jquery Ajax时 error处理 之 parsererror     01 $.ajax({ 02         type: "POST", 03         contentType: "application/json", 04         url: myurl, 05         <font color="#ff0000">data</font>: {}, 06         timeout:

jQuery Ajax 实例 ($.ajax、$.post、$.get)

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/ $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$