0

我有一个 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);
  }
}

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

4

2 回答 2

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);
    }
});
于 2013-07-16T09:20:39.027 回答
0

如果您的参数不受 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它在外部范围内,因此可以被成功函数访问。

于 2013-07-16T09:18:12.620 回答