`
足至迹留
  • 浏览: 495689 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

<ajax> 给$.post()的回调方法传递多个参数

 
阅读更多
1.问题描述
想给$.post()的回调方法传递多个参数,如果把回调函数放在post方法之外定义,始终传递不过去,如:
//接收短信
function getLatestReceivedSms()
{
    $.get("/smsplatform/smsplatform/S_SmsManager_queryLatestReceivedSms.action", {senderId:smsSenderId}, receiveSmsCallback);
}

// 回调方法
function receiveSmsCallback(data)
{
    var result = $.parseJSON(data);
    ...
}

可以看到这种方法,默认不需要传递参数,data就是post方法调用由服务器返回的json数据。
按照这样的思路,自定义参数传递写成:
//接收短信
function getLatestReceivedSms()
{
    var myParam = 'aa';

    // error: data未定义
    $.get("/smsplatform/smsplatform/S_SmsManager_queryLatestReceivedSms.action", {senderId:smsSenderId}, receiveSmsCallback(data, myParam));
}

// 回调方法
function receiveSmsCallback(data, myParam)
{
    var result = $.parseJSON(data);
    ...
}

这样就会在post调用回调的地方报错,data没有定义。如果把data删掉只留myParam,则传参只会把第一个参数data当做是myParam。

2. 半解决办法
最后没办法,只得在post的调用里面直接定义回调方法,写成:
function getLatestReceivedSms()
{
    var myParam = 'aa';

    // error: data未定义
    $.get("/smsplatform/smsplatform/S_SmsManager_queryLatestReceivedSms.action", {senderId:smsSenderId}, function receiveSmsCallback(data)
    {
        var result = $.parseJSON(data);
        alert(myParam);
        ...
    });
}

利用参数的可见性,直接在回调方法里使用myParam即可。还是没有通过传参。
在这里定义的时候可以多几个参数,比如function( data, textStatus, jqXHR ),data就是后台传来的结果,textStatus代表post调用的结果是"success"还是"fail"
可以参考:
http://www.365mini.com/page/jquery_ajax.htm
http://love398146779.iteye.com/blog/1177332
分享到:
评论

相关推荐

    详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())

    当使用$.getJSON()时,jQuery会自动处理JSON数据的解析,并将解析后的JavaScript对象传递给回调函数。这意味着,开发者可以直接操作JSON对象,而无需手动解析JSON字符串。 除了上述AJAX函数外,jQuery还提供了.load...

    jquery-1.1.3 效率提高800%

    如果还需要设置error和success回调函数,则需要使用$.ajax。 &lt;br&gt;实例 &lt;br&gt;请求test.php页,忽略返回值. &lt;br&gt;$.get("test.php");请求test.php页并发送附加数据(忽略返回值). &lt;br&gt;$.get("test.php", { name: "John", ...

    ajax请求后台接口数据与返回值处理js的实例讲解

    在上文提供的代码示例中,$.ajax方法有多个配置参数,它们分别代表不同的请求设置和回调函数: - url:字符串类型,表示请求的服务器地址。 - type:字符串类型,表示请求的方式,常见的有"GET"和"POST"。 - data:...

    Js-$.extend扩展方法使方法参数更灵活.docx

    1. **JQuery 中的`.ajax()`方法**:该方法用于发起异步HTTP请求,其参数中也广泛使用了对象配置,包括URL、类型(GET/POST)、数据、回调函数等。 2. **JQuery 中的`.bind()`方法**:允许你将函数绑定到特定的事件...

    WEB开发 之 jQuery - AJAX get() 和 post() 方法.docx

    在jQuery中,AJAX主要通过`$.get()`和`$.post()`这两个方法来实现GET和POST请求。本文将深入探讨这两个方法以及它们在HTTP请求中的作用。 首先,我们需要理解GET和POST这两种HTTP请求方法的区别。GET主要用于从...

    ajax传递一个参数具体实现.docx

    `$.ajax`方法被用来发起Ajax请求,其中`data`参数是传递给服务器的JSON数据,`success`回调处理服务器返回的数据,`error`回调处理请求失败的情况。 在实际应用中,我们可能会遇到传递多个参数的情况。例如,如果...

    JQuery的ajax的用法在asp中使用$.ajax()实现

    ### JQuery的ajax的用法在asp中使用$.ajax()实现 JQuery是一个快速、小巧、功能丰富的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画和Ajax交互。Ajax(Asynchronous JavaScript and XML)是一种无需...

    asp.net 利用jquery-ajax调用后台方法

    对于更简单的GET或POST请求,jQuery提供了简化的`$.getJSON()`, `$.get()`, `$.post()`方法,它们是`$.ajax()`的封装,方便快捷地进行数据请求。 综上所述,通过jQuery的AJAX功能,我们可以轻松地在客户端与ASP...

    jquery自定义类似$.ajax()的方法实现代码

    错误处理可以通过在AJAX请求中使用error回调函数或者Promise的catch方法来实现。 总而言之,使用jQuery的$.extend方法来自定义类似$.ajax()的方法是一个灵活且强大的方式,可以让开发者在保持代码简洁的同时,增强...

    jQuery使用deferreds串行多个ajax请求

    4. **$.when()**:这是一个jQuery函数,用于等待多个`deferred`对象完成,当所有`deferred`对象都已完成时,它将触发回调函数。 5. **Promise**:在jQuery中,`deferred`对象具有一个`promise`接口,允许其他代码...

    自己用的简单封装AJAX类

    在这个文件中,我们可以期待看到一个或多个函数,这些函数用于发起异步HTTP请求,处理响应,并可能提供了错误处理和回调函数等机制。 - **使用方法.txt**:这个文件应包含关于如何在项目中引入和使用这个AJAX类的...

    使用jQuery处理AJAX请求的基础学习教程

    在详细使用$.ajax方法时,开发者可以通过settings对象来配置更多参数,如请求成功后的回调(success)、请求失败的回调(error)、处理响应状态码的回调(statusCode)以及请求返回前的回调(complete)等: ...

    Jquery的Ajax应用

    jQuery的Ajax函数支持多个回调函数,如`beforeSend()`、`complete()`、`success()`和`error()`,它们在请求的不同阶段被调用。此外,从jQuery 1.5开始,`$.ajax()`返回一个Promise对象,可以使用`.then()`、`.done()...

    form提交的集中方式

    这三种方法各有特点,$.post()适合简单的POST请求,$.ajax()则提供了更多自定义选项,适用于复杂的请求逻辑,而ajaxForm()则是针对整个表单的提交,特别适合已有的HTML表单,无需手动构建请求数据。 在实际开发中,...

    jQuery中$.ajax()方法参数解析

    首先,$.ajax()方法最基本的使用形式是接受一个对象作为参数,对象包含了多个配置选项,用于指定如何处理请求。 1. url:这是必须的参数,指定发送请求的地址。它必须是字符串类型,默认值是当前页面的URL。 2. ...

    常用jquery ajax方法总结

    2. `$.get()`: 用于发起 GET 请求,接受 URL 和回调函数作为参数,简化了 `$.ajax()` 的使用。 3. `$.post()`: 类似于 `$.get()`,但用于发起 POST 请求。同样接受 URL 和回调函数,还可以传递额外的数据。 4. `$....

    ajax的jquery代码

    1. `$.ajax()`: 这是jQuery中最基础的Ajax函数,它可以接受一个包含各种选项的对象作为参数,如URL、类型(GET或POST)、数据、回调函数等。例如: ```javascript $.ajax({ url: 'http://example.com/api/data', ...

    jquery-get-post-load 方法

    `$.ajax()` 方法提供了更多的控制选项,可以执行 GET、POST 等多种类型的请求。 **基本语法**: ```javascript $.ajax({ type: "METHOD", url: "URL", data: DATA, success: SUCCESS_FUNCTION }); ``` - `type`:...

    ajax从后台读json数据,jquery在页面简析

    2. **处理JSON数据**:当Ajax请求成功,服务器返回的JSON数据会在`success`回调函数中作为参数传递。可以使用JavaScript的内置函数`JSON.parse()`解析JSON字符串为JavaScript对象,然后根据需要处理数据。例如: ``...

Global site tag (gtag.js) - Google Analytics