$.ajax({
type: "GET",
url: "http://api.xhanch.com/islamic-get-prayer-time.php?lng=34.4366455078125&lat=31.48957771850194&yy=2013&mm=5&gmt=3&m=json",
dataType: "jsonp",
success: function () {
console.log("Success!");
},
error: function () {
console.log("Uh Oh!");
},
jsonp: "jsonp"
});
когато изпълнявам този код, получавам грешка в връщащия json обект
Untaught SyntaxError: Неочаквано означение:
Защо?
Отговори:
0 за отговор № 1Проблемът е че jsonp: "jsonp"
призовава метода jsonp
това не съществува в кода ви. Ако наистина се нуждаете от това, просто създайте метода или го премахнете.
Премахване
$.ajax({
type: "GET",
url: "http://api.xhanch.com/islamic-get-prayer-time.php?lng=34.4366455078125&lat=31.48957771850194&yy=2013&mm=5&gmt=3&m=json",
dataType: "jsonp",
success: function () {
console.log("Success!");
},
error: function () {
console.log("Uh Oh!");
},
});
Или създайте метода
$.ajax({
type: "GET",
url: "http://api.xhanch.com/islamic-get-prayer-time.php?lng=34.4366455078125&lat=31.48957771850194&yy=2013&mm=5&gmt=3&m=json",
dataType: "jsonp",
success: function () {
console.log("Success!");
},
error: function () {
console.log("Uh Oh!");
},
jsonp: { jsonp: false, jsonpCallback: "callbackName" }
});
function callbackName(){
/*do something*/
}
справка: http://api.jquery.com/jQuery.ajax/
JSONP
Тип: String Замяна на името на функцията за обратно извикване в заявка jsonp. Тази стойност ще бъде използвана вместо "обратно повикване" в "callback =?" част на низа за заявки в URL адреса. Така ще се получи {jsonp: "onJSONPLoad"} в "onJSONPLoad =?" предаден на сървъра. Към jQuery 1.5, настройката на опцията jsonp да фалшиви предотвратява jQuery да добави "? callback" низ на URL адреса или опит за използване на "=?" за трансформация. в в този случай, трябва също изрично да зададете настройката jsonpCallback. Например {jsonp: false, jsonpCallback: "callbackName"}