Ajax-вызов для получения Json от контроллера MVC3 - PullRequest
5 голосов
/ 03 августа 2011

Я надеюсь, что кто-то может мне помочь. Я пытаюсь сделать очень простую вещь: использовать Jquery, чтобы получить Json от контроллера MVC3. Контроллер возвращает Json нормально, если я вызываю URI напрямую http://www.youtipit.org/api/GetTipitByUrl?url=http://utipi.it/t/1834 из браузера, но получаю пустой результат (в Firebug), когда пытаюсь сделать следующее:

$.getJSON( 'http://www.youtipit.org/API/GetTipitByUrl?url=http://www.youtipit.org/t/J1833', null,

                 function(data) {

                   if (data) {
                     alert('It Works!!');
                     alert(data);
                   }
                 });

В firebug я получаю код 200, но ответ пуст. Я уверен, что есть что-то простое, что я могу сделать в своем Javascript, чтобы заставить это работать, но я новичок в этом.

1 Ответ

4 голосов
/ 03 августа 2011

Возможно, вы нарушаете ограничение той же политики происхождения .Если ваш сайт не размещен на www.youtipit.org, вы не можете отправлять ему запросы AJAX.Существует два возможных обхода этого ограничения:

  • Удаленный сайт поддерживает JSONP (обратите внимание на разницу с JSON), и в этом случае ответ JSON оборачивается специальной функцией обратного вызова.Для этого удаленный сервер должен поддерживать его.Проверьте документацию API, если это так.URL-адрес примера, который вы показали и который работает в браузере, возвращает простой JSON.
  • Если удаленный сервер не поддерживает JSONP, а только отправляет XML или JSON, вам придется написать действие контроллера в вашем домене, которое будет служить мостом между вашим доменом и удаленным доменом.Затем вы отправите запрос AJAX этому действию контроллера, который, в свою очередь, отправит HTTP-запрос в удаленный домен, используя WebClient.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...