【问题标题】:How to pass a parameter to ajax sucsses function如何将参数传递给ajax成功函数
【发布时间】:2013-07-16 09:13:25
【问题描述】:

我有一个 php 函数,它可以获取一些要处理的 xml 信息,但我的问题是除了从 ajax 返回的数据之外,还要向函数传递一个参数:

$.ajax({
    type: "POST",
    url: 'proxy.php',
    data:{country:'home'},
    dataType: "xml",
    success: function(data)
    {
       alert(data);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest);
        alert(textStatus);
        alert(errorThrown);
        alert(XMLHttpRequest.responseText);
    }
});

我想用数据传递参数。 我知道我可以这样做:

$.ajax({
    type: "POST",
    url: 'proxy.php',
    data:{country:'home'},
    dataType: "xml",
    success: function do_it(parameter)
});
function do_it(parameter)
{
   return function(data)
  {
    alert(parameter);
    alert(data);
  }
}

我不想使用这种方式,我想在第一个代码显示时传递参数。 有可能吗?

【问题讨论】:

    标签: php xml ajax


    【解决方案1】:

    您可以将context 选项用于$.ajax。这将在回调中以this 的形式提供。

    $.ajax({
        type: "POST",
        url: 'proxy.php',
        data:{country:'home'},
        dataType: "xml",
        context: parameter,
        success: function(data)
        {
           alert(data);
           alert(this);
        },
        error : function(XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest);
            alert(textStatus);
            alert(errorThrown);
            alert(XMLHttpRequest.responseText);
        }
    });
    

    【讨论】:

      【解决方案2】:

      如果您的参数不受 AJAX 调用的影响,只需在与调用相同的范围内定义它,然后从成功函数中访问它。例如:

      var parameter = 'some value';
      $.ajax({
          type: 'post',
          url: 'proxy.php',
          data: {country: 'home'},
          dataType: 'xml',
          success: function (data) {
              alert(parameter);
              alert(data);
          },
          error: function (XMLHttpRequest, textStatus, errorThrown) {
              alert(XMLHttpRequest);
              alert(textStatus);
              alert(errorThrown);
              alert(XMLHttpRequest.responseText);
          }
      });
      

      这是可行的,因为parameter 在外部范围内,因此可以被成功函数访问。

      【讨论】:

        猜你喜欢
        • 2015-08-01
        • 1970-01-01
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        • 2011-01-25
        相关资源
        最近更新 更多