Ajax调用从MVC3控制器获取Json

kSe*_*udo 5 ajax jquery asp.net-mvc-3

我希望有人可以帮助我.我正在尝试做一个非常基本的事情:使用Jquery从MVC3控制器获取Json.如果我直接从浏览器调用URI http://www.youtipit.org/api/GetTipitByUrl?url=http://utipi.it/t/1834,控制器会返回Json,但我得到一个空结果(在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);
                   }
                 });
Run Code Online (Sandbox Code Playgroud)

在firebug中,我得到一个200代码,但响应是空的.我确信在我的Javascript中可以做一些简单的事情来实现这一点,但我是新手.

Dar*_*rov 4

您可能违反了同源策略限制。除非您的网站托管在其上,否则www.youtipit.org您无法向其发送 AJAX 请求。对于此限制,有两种可能的解决方法:

  • 远程站点支持JSONP(请注意与 JSON 的区别),在这种情况下,JSON 响应将包装在特殊的回调函数中。为此,远程服务器必须支持它。如果是这种情况,请检查 API 文档。您显示的示例 url 在浏览器中运行,返回纯 JSON。
  • 如果远程服务器不支持 JSONP,但仅发送 XML 或 JSON,您将必须在您的域上编写一个控制器操作,该操作将充当您的域和远程域之间的桥梁。然后,您将 AJAX 请求发送到此控制器操作,该操作又将使用WebClient.