2013-08-01 4 views
0

У меня возникли проблемы с вызовами JQuery AJAX. Я никоим образом не специалист, но я знаю, что jQuery достаточно, чтобы справляться с простыми задачами.jQuery ajax call failing

Вот мой код -

var id = 123; 
    var url = "/test.aspx?id=" + id; 
      $.getJSON(url, function (data) { 
       alert(1); 
      }); 

Проблема заключается в том, что сигнал тревоги (1) не получить удар. Когда я вручную проверяю [domain] /test.aspx?id=123, я возвращаю данные JSON. Что я делаю неправильно здесь или как я могу диагностировать проблему здесь?

Thanks

+3

У вас есть ошибки? – putvande

+0

Как подсказывает url, это не запрос перекрестного домена, не так ли? –

+3

Вы можете добавить '.fail (function() {console.log (" error ");})' к вашей функции, чтобы проверить наличие сбоя. – putvande

ответ

0

Это немного странно, но мне нужно было указать тип данных JSON в запросе.

var id = 123; var url = "/ echo/json /"; $ .getJSON (url, "json", функция (данные) { alert ("hello"); });

У меня возникла идея JSON от http://api.jquery.com/jQuery.getJSON/. Пример на этой странице был для PlainObject. URL-адрес моего кода пытался разобрать JSON как PlainObject, но не смог. Я использовал .success и .error после закрытия скобки getJSON, чтобы выяснить проблему. Чтобы увидеть, как можно использовать успех и ошибки, прокрутите страницу до конца ссылки jquery.com.

0

Ваш пример отлично работает. Вот пример JSfiddle, чтобы проверить его (с помощью эхо-сервис):

var id = 123; 
var url = "/echo/json/"; 
$.getJSON(url, function (data) { 
    alert("hello"); 
}); 

http://jsfiddle.net/QyfCF/1/

+0

Это сработало для вас. Для меня мне пришлось указать тип данных JSON, чтобы он работал. См. Мой ответ для деталей. – Gabbar

0

Это выглядит как проблема доносился откуда-то, кроме кода предоставленной Вами. Для устранения неполадок, я бы попытаться сделать что-то вроде этого ...

var id = 123; 
var url = "/test.aspx?id=" + id; 
console.log("before"); 
$.getJSON(url, function (data) { 
    console.log("inside"); 
}); 
console.log("after"); 

Таким образом, вы можете увидеть, действительно ли когда-либо получает код запроса JSon, потому что вы будете видеть «перед» в консоли, вы можете посмотрите, попадет ли он внутрь, потому что вы увидите «внутри» в консоли и т. д.

Также возможно, что ваш URL-адрес, который вы передаете в $.getJSON, является неправильным адресом. Возможно, вы захотите попробовать его без косой черты заранее или, возможно, перейдете в полный URL-адрес, чтобы убедиться, что вы ссылаетесь на нужное место.

+0

Спасибо за объяснение. Я пробовал до и после и понял, что проблема связана с getJSON в одиночку. Я использовал .error и .success и понял, что это проблема с типом данных. См. Мой ответ для исправления. – Gabbar

0

Убедитесь, что ваш JSON действителен JSON, например. запустив его, хотя JSONLint. JQuery's .getJSON() и .ajax() молча не работают, если запрашиваемый JSON недействителен.

+0

JSON был действителен. Просто функция не смогла разобрать, и я должен был ее указать. Проверьте мой ответ. – Gabbar