Я использую jsonp и ajax для доступа к веб-службе на другом сервере.Вот jQuery:
$.ajax({
type: 'GET',
url: wsurl + 'callback=?',
dataType: 'jsonp',
crossDomain: true,
error: function(data) {
console.log('error', data);
},
success: function(data) {
console.log('success', data);
},
complete: function() {
console.log('done');
}
});
Проблема в том, что вызывается обратный вызов ошибки.Это дает мне эту удивительно полезную информацию:
{
readyState: 4,
status: 200,
statusText: "success"
}
И вот файл json, который я вызываю:
{
"id": 0,
"room_number": "0",
"first_name": "Admin",
"last_name": "Istrator",
"password": "",
"salutation": "Mr.",
"telephone": "",
"email": "",
"description": "admin",
"checkin_date": 915797106000,
"checkout_date": 4071557106000,
"last_login_date": 947333106000,
"active_status": true,
"created_date": 915797106000,
"created_by": 0,
"reference_id": ""
}
Сначала я попытался использовать метод jQuery getJSON, с тем же результатом.Думаю, я бы попробовал базовый метод ajax, так как он имеет немного больше контроля, но, как видите, не повезло.Так, заметьте, что я делаю не так?Есть идеи, почему он выдает ошибку и дает мне успешное значение для свойства statusText?
EDIT
Хорошо, я добавил некоторые параметры в вызов ajax и удалил параметр обратного вызова изURLВот новый вызов ajax:
$.ajax({
type: 'GET',
url: wsurl,
dataType: 'jsonp',
crossDomain: true,
error: function(xhr, textStatus, errorThrown) {
console.log('textStatus: ' + textStatus);
},
success: function(data) {
console.log('success');
console.log(data);
}
});
Я получаю новую ошибку, которая, я полагаю, хороша, но все еще не работает.Разница в том, что textStatus теперь "parsererror".Консоль также выдает синтаксическую ошибку в первой строке файла json:
Uncaught SyntaxError: Unexpected token :
Идеи?