我想为Ajax.Response()
创建语法糖。
像这样:
AjaxGet = function(url) {
ar = new Ajax.Request(url,
{ onSuccess: function(transport) {
alert(transport.responseText);
return transport.responseText;
}
});
return ar.responseText;
}
以便
title = AjaxGet('/favouriteMovie?horrors=true')
将存储到
title
Ajax请求的变量结果。但是上面的功能代码不起作用,不返回
responseText
最佳答案
仅当使用同步Ajax时才可以这样做,而永远不要这样做。整个浏览器的用户界面在请求期间将无响应,您无法预测。
因此,您能做的最好的事情就是涉及某种回调:
function AjaxGet(url, callback) {
new Ajax.Request(url, {
onSuccess: function(xhr){ callback(xhr.responseText) }
});
}
但是,这种方法存在一些问题:
它不允许您处理XML内容类型。
您将无法设置自定义标题。
您将无法处理任何类型的错误。
由于这些原因,我建议您在需要时使用完整的
Ajax.Request
。