在prototype手册中,关于 ajax.request 有这样 几个例子
A basic example

URL = 'http://www.google.com/search?q=Prototype';

new Ajax.Request('/proxy?url=' + encodeURIComponent(URL), ...{
method: 'get',

onSuccess: function(transport) ...{
var notice = $('notice');
if (transport.responseText.match(/<a class=l href="http://prototypejs.org/))
notice.update('Yeah! You are in the Top 10!').setStyle({ background: '#dfd' });
else
notice.update('Damn! You are beyond #10...').setStyle({ background: '#fdd' });
}
});
Way too many people use Ajax.Requester in a similar manner to raw XHR, defining only an onComplete callback even when they're only interested in "successful" responses, thereby testing it by hand:

// This is too bad, there's better!

new Ajax.Requester('/your/url', ...{

onComplete: function(transport) ...{
if (200 == transport.status)
// yada yada yada
}
});

First, as described below, you could use better "success" detection: success is generally defined, HTTP-wise, as either no response status or a "2xy" response status (e.g., 201 is a success, too). See the example below.

Second, you could dispense with status testing altogether! Prototype adds callbacks specific to success and failure, which we listed above. Here's what you could do if you're only interested in success, for instance:


new Ajax.Requester('/your/url', ...{

onSuccess: function(transport) ...{
// yada yada yada
}
});
可以看出在后段中
new Ajax.Requester('/your/url', {
这里多了一个er 应为笔误.
本文通过实例介绍Prototype框架中AJAX请求的使用方法,并对比了使用onSuccess与onComplete回调的区别,强调了正确检测成功的HTTP状态码的重要性。
351

被折叠的 条评论
为什么被折叠?



