Я только что обновил jQuery с версии 1.4 до версии 1.5, и теперь мои вызовы AJAX всегда завершаются с ошибкой" недопустимая метка " ошибка.
Пример запроса:
jQuery.ajax({
async: false
, dataType: "json"
, error: function (xhr, status, error) { ... }
, success: function (data, status, xhr) { ... }
, type: "post"
, url: "ajax/request.asp"
});
Я обнаружил в сети, что эта ошибка возникает, когда возвращаемый JSON не упакован с помощью обратного вызова jQuery (например, jQuery1234 ({"something": "abcd"})
.
Проблема в том, что я возвращаю JSON, а не JSONP (и я указываю это в запросе AJAX), так почему я должен указывать обратный вызов в возвращенном JSON?
Журнал изменений 1.5 ничего не говорит об этом ... (Или это я не умею читать?)
Обновление:
Это пример неработающего JSON:
{
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
}
И это тот же рабочий JSON с обратным вызовом:
jQuery1502710949228847014_1296739130498({
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
})
Между прочим, Firebug говорит, что оба они являются действительными JSON (и он очень придирчив к правильности).