Serwer nie zaakceptuje żadnych parametrów w adresie URL żądania, więc muszę usunąć wszystkie dodatkowe parametry z adresu URL i oczywiście nie mogę kontrolować serwera.Czy mogę utworzyć żądanie JSONP jQuery bez dodawania parametru? Callback = 'w adresie URL?
jQuery:
$.ajax({
type: 'GET',
url: 'http://cross-domain.com/the_jsonp_file,
jsonpCallback: 'jsonCallback',
contentType: 'application/json',
cache: 'true',
dataType: 'jsonp',
success: function(json) {
console.log(json);
},
});
Plik JSONP:
jsonCallback({"test": "hello"});
Kiedy wysłać ten wniosek Ajax URL wygląda następująco:
http://cross-domain.com/the_jsonp_file?callback=jsonCallback
Ale muszę to (bez parametry):
http://cross-domain.com/the_jsonp_file
EDIT:
Oto cała moja sytuacja:
function MyClass(imgs) {
// imgs is array of URLs
this.imgs = imgs;
this.submit = function() {
// button click event triggers this method
this._show();
};
this._show = function() {
var _this = this;
for (var i = 0; i < _this.imgs.length; i++) {
(function($, j) {
$.ajax({
type: 'GET',
url: _this.imgs[j],
jsonp : false,
jsonpCallback: 'jsonCallback',
cache: 'true',
dataType:'jsonp',
success: function(json) {
console.log(_this.imgs[j]);
},
});
})(jQuery, i);
};
};
};
I mam ten komunikat o błędzie:
Uncaught TypeError: Property 'jsonCallback' of object [object Window] is not a function
dziwne jest to mało żądania są pomyślnie wywołanie jsonCallback.
Serwer odrzuca żądania z ciągami zapytań? –
Być może najlepiej byłoby napisać sam kod JSONP, zamiast używać jQuery ... – lonesomeday
Próbowałem 'dataType: 'script'' w ustawieniu ajax i robiłem URL bez parametrów, ale nie mam pojęcia, jak wykonać wywołanie zwrotne funkcja działa. – Jonypoins