Added in support for $.ajax jsonpCallback (allowing you to specify the name of the callback method - and allowing you to avoid skipping the cache). Fixes #4206.
This commit is contained in:
parent
aea5b09195
commit
fbc73d45b4
|
@ -221,7 +221,7 @@ jQuery.extend({
|
|||
|
||||
// Build temporary JSONP function
|
||||
if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) {
|
||||
jsonp = "jsonp" + jsc++;
|
||||
jsonp = s.jsonpCallback || ("jsonp" + jsc++);
|
||||
|
||||
// Replace the =? sequence both in the query string and the data
|
||||
if ( s.data ) {
|
||||
|
@ -235,7 +235,7 @@ jQuery.extend({
|
|||
s.dataType = "script";
|
||||
|
||||
// Handle JSONP-style loading
|
||||
window[ jsonp ] = function(tmp){
|
||||
window[ jsonp ] = window[ jsonp ] || function(tmp){
|
||||
data = tmp;
|
||||
success();
|
||||
complete();
|
||||
|
|
|
@ -518,10 +518,10 @@ test("jQuery.getScript(String, Function) - no callback", function() {
|
|||
});
|
||||
|
||||
test("jQuery.ajax() - JSONP, Local", function() {
|
||||
expect(7);
|
||||
expect(8);
|
||||
|
||||
var count = 0;
|
||||
function plus(){ if ( ++count == 7 ) start(); }
|
||||
function plus(){ if ( ++count == 8 ) start(); }
|
||||
|
||||
stop();
|
||||
|
||||
|
@ -579,6 +579,20 @@ test("jQuery.ajax() - JSONP, Local", function() {
|
|||
}
|
||||
});
|
||||
|
||||
jQuery.ajax({
|
||||
url: "data/jsonp.php",
|
||||
dataType: "jsonp",
|
||||
jsonpCallback: "jsonpResults",
|
||||
success: function(data){
|
||||
ok( data.data, "JSON results returned (GET, custom callback name)" );
|
||||
plus();
|
||||
},
|
||||
error: function(data){
|
||||
ok( false, "Ajax error JSON (GET, custom callback name)" );
|
||||
plus();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.ajax({
|
||||
type: "POST",
|
||||
url: "data/jsonp.php",
|
||||
|
@ -624,6 +638,22 @@ test("jQuery.ajax() - JSONP, Local", function() {
|
|||
});
|
||||
});
|
||||
|
||||
test("JSONP - Custom JSONP Callback", function() {
|
||||
expect(1);
|
||||
stop();
|
||||
|
||||
window.jsonpResults = function(data) {
|
||||
ok( data.data, "JSON results returned (GET, custom callback function)" );
|
||||
start();
|
||||
};
|
||||
|
||||
jQuery.ajax({
|
||||
url: "data/jsonp.php",
|
||||
dataType: "jsonp",
|
||||
jsonpCallback: "jsonpResults"
|
||||
});
|
||||
});
|
||||
|
||||
test("jQuery.ajax() - JSONP, Remote", function() {
|
||||
expect(4);
|
||||
|
||||
|
|
Loading…
Reference in a new issue