在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' });
}
});
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
}
} );
// 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 应为笔误.