Javascript 如何向ajax回调函数传递附加参数?

Javascript 如何向ajax回调函数传递附加参数?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在进行一个ajax调用,如下所示: util.AjaxCall(url,successCallbackFunction,errorCallbackFunction); function successCallbackFunction(result){ //Ajax returns result } 一切正常,除了我必须传递一个我自己的参数才能在“successCallbackFunction”上使用之外 差不多 function successCallbackFunction(re

我正在进行一个ajax调用,如下所示:

util.AjaxCall(url,successCallbackFunction,errorCallbackFunction);

function successCallbackFunction(result){
   //Ajax returns result
}
一切正常,除了我必须传递一个我自己的参数才能在“successCallbackFunction”上使用之外

差不多

function successCallbackFunction(result, passedParameter){
}
我该怎么做


注意:我无权访问util.AjaxCall源代码(我无权更改该代码)。

您可以使用
bind

util.AjaxCall(url,
              successCallbackFunction.bind(this, passedParameter),
              errorCallbackFunction);
第一个参数是函数的作用域,在您的情况下可能可以忽略不计

这将触发您的
successCallbackFunction
,并带有一个附加(前置)参数:

function successCallbackFunction(passedParameter, result){}

通常,在发送/接收Ajax请求时,使用JSON格式交换数据。 这样您就可以将数据作为JSON对象接收

例如,如果下面的行是通过Ajax调用返回的结果

{"firstname":"john","lastname":"doe"}
然后,您可以通过以下方式检索数据:

function successCallbackFunction(result){
  var obj = jQuery.parseJSON(result);  // if you are using Jquery if not use eval
  // var obj = eval(result);           // this is not recommeneded for security issue.
  var firstname = obj.firstname;
  var lastname = obj.lastname;
}

使用闭包/匿名函数。什么是
passedParameter
它是由您创建的还是由
util.AjaxCall()
method@SLaks:如果我使用它,如何将我自己的参数与ajax返回的数据结合起来?@ArunPJohny:由我创建的ajax结果如何?根据本文,参数是在通常发送到回调的参数之前加上的。另外,IE的某些版本不支持通过bind进行咖喱。是的,当然它们是预先准备好的,谢谢您的更正@Gabriel@Gabriel”“是的。您只需自己编写一个
bind
方法,如果IE足够老,它可能不应该出现在
函数.prototype
上,而应该出现在
window.bindFunc
上,而且如果您打算将其用于事件侦听器,您需要跳过更多的环,以确保
元素的正确传播。。。我不怀念主要使用IE6-8的工作……或者如果您使用的是现代浏览器,只需调用
JSON.parse()