2015-02-06 3 views
0

Мне нужно сделать запрос на перекрестный домен, и у меня возникла проблема с getJSON.getJSON callback не выполняется

$.getJSON("http://usr:[email protected]/cgi-bin/remote/request.cgi?m=json&r=grp&fn=getvalue&alias=1/3/51&callback=?", 
     function(result) { 
      alert('hi'); 
     }); 

Обратный вызов не срабатывает, то есть я не получаю предупреждение. Если я вставляю ссылку http: // в окне браузера, я получаю желаемый результат. Это простое число, в данном случае 2. Я мог бы также задать запрос на xml, и в этом случае результат в окне браузера будет <value>2</value>. Если кто-то может сказать мне, что случилось с моим getJSON, это было бы здорово.

Большое спасибо и наилучшими пожеланиями

+0

Вы включили сценарии ajax? –

+1

Когда вы говорите, что получаете желаемый результат, если вы вставляете эту ссылку в свой браузер, не могли бы вы показать этот результат здесь? Получаете ли вы действительный ответ JSONP? Также не забудьте заменить параметр '?' В параметре обратного вызова значимым именем функции при вставке URL-адреса в ваш браузер. –

+0

Дарин, результат в браузере - простое число, в данном случае 2. Исходный код показывает простой номер, ничего больше. – LFS

ответ

1

Вы могли бы иметь проблему с вашим JSON. Это взято из документов.

Важно: На JQuery 1.4, если файл JSON содержит синтаксическую ошибку, запрос будет обычно не молча. По этой причине избегайте частого редактирования вручную данных JSON. JSON - это формат обмена данными с правилами синтаксиса , которые более строгие, чем те, которые имеют объект JavaScript . Например, все строки, представленные в JSON, , являются ли они свойствами или значениями, должны быть заключены в двойные кавычки. Подробнее о формате JSON см. http://json.org/.

Источник:

http://api.jquery.com/jquery.getjson/ 

иметь больший контроль над использованием обработки ошибок $.ajax

вы можете проверить JSON здесь http://jsonlint.com/

0

Оказывается, что удаленная конечная точка вы пытаетесь вызвать не поддерживает JSONP или CORS. Это можно увидеть на консольном выходе вашего браузера или путем непосредственного вставки URL-адреса и замены параметра &callback=? на &callback=somevalue.

Для того, чтобы совершать перекрестные вызовы AJAX, удаленная конечная точка должна поддерживать CORS или JSONP. Вероятно, вам следует связаться с авторами этой конечной точки, чтобы включить один из них, если вы хотите использовать их с AJAX.

Смежные вопросы