我有一个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);
}
}
我不想使用这种方式我想在第一个代码显示时传递参数。 有可能吗?
答案 0 :(得分: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);
}
});
答案 1 :(得分:0)
如果您的参数不受AJAX调用的影响,只需在与调用相同的范围内定义它,然后从success函数访问它。例如:
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
位于外部范围内,因此可以通过成功函数访问。