Я использую jsonp и ajax для запроса написанной веб-службы в java на другом сервере. Я использую следующую команду jquery:
$.ajax({
type: "GET",
url: wsUrl,
data: {},
dataType: "jsonp",
complete: sites_return,
crossDomain: true,
jsonpCallback: "sites_return"
});
function jsonp_callback(data) {
console.log(data);
}
function sites_return(data) {
console.log(data);
}
Итак, моя проблема в том, что после завершения запроса вызывается функция с именем jsonp_callback. Там, где я могу ясно видеть строку в формате json:
{"listEntries":["ELEM1", "ELEM2", "ELEM3", etc...]}
Но после функции sites_return вызывается, когда срабатывает полное событие, я получаю следующее:
Object { readyState=4, status=200, statusText="parsererror"}
Также для справки функция jsonp_callback вызывается перед функцией sites_return. Также, если я беру функцию jsonp_callback из кода, я получаю жалобу на firebug, что функция не реализована.
Мой вопрос тройной: 1) Что я делаю не так на стороне jquery? 2) Почему json правильно разбирается в jsonp_callback, но не sites_return? 3) Что я могу сделать, чтобы исправить эти проблемы?
EDIT
Некоторые новые разработки. В комментариях содержится дополнительная информация.
Следующее - это то, что выходит из HTTP-ответа
jsonp_callback({"listEntries":["ELEM1", "ELEM2", "ELEM3"]})
Я предполагаю, что это причина вызова jsonp_callback. Думаю, теперь мой вопрос таков: есть ли способ контролировать это (при условии, что у меня нет доступа к серверной веб-службе).