#jquery
#jquery
Вопрос:
У меня есть этот «веб-сервис», который я создал при доступе:
"http://192.168.0.1/api/v1/search/?query=thequery"
возвращает строку JSON в качестве результата. Это очень просто, это просто возвращает строку.
Я пытаюсь получить к нему доступ со своего клиентского сайта, используя jQuery:
function doSearch() {
$.ajax({
url: "http://192.168.0.1/api/v1/search/?query=" $('#searchfield').val(),
dataType: 'jsonp',
success: function(json_results){
alert('Alert title', 'Alert message!');
},
error: function() {
alert('Error', 'Alert message!');
}
});
}
Хотя я, когда веб-сервис возвращается должным образом при доступе с помощью curl или веб-браузера, при доступе через $.ajax он всегда завершается с ошибкой, показывая окно предупреждения об ошибке.
РЕДАКТИРОВАТЬ: Из консоли Firebug я получаю:
Content-Type application/json; charset=utf-8
Content-Length 131
Connection keep-alive
Однако ответ пуст.
Комментарии:
1. Итак, какова информация об ошибке? Почему вы пытаетесь получить к нему доступ с помощью jsonp, если это не служба jsonp?
2. Это вопрос поддержки / ошибки / чата, а не вопрос SO.
3. @Dave Newton Я только что ввел эту ошибку: function (), как мне получить информацию об ошибке, о которой вы говорите?
4. Эта информация содержится в документах функции jquery .ajax() .
Ответ №1:
dataType: 'jsonp'
У вас нет сервиса JSONP; вы просто возвращаете JSON.
Итак, используйте правильный datatype
:
dataType: 'json'
Комментарии:
1. Спасибо, однако по-прежнему вызывается функция ‘error: function()’.
Ответ №2:
Для этой цели можно использовать Jquery.getJSON.
Комментарии:
1. Можете ли вы привести мне пример использования getJSON для этого экземпляра?
2. Например; $.getJSON(» 192.168.0.1/api /v1 /search «, { запрос: «бла»}, функция (данные) { … });
3. Интересно, почему, когда я пробовал этот подход, функция обратного вызова не вызывалась? Я просто поместил ‘alert (data);’, чтобы посмотреть, будет ли вызван обратный вызов.
4. Я попробовал Firbug и вижу, что параметр есть, то есть запрос. Ответ от GET пуст.
5. Функция $ (‘#submit’).click, которая запускает doSearch, привязана к привязке, может ли это быть проблемой?