我希望有人能帮助我。我正在尝试做一件非常基本的事情:使用 Jquery 从 MVC3 Controller 获取 Json。如果我直接调用 URI, Controller 会返回 Json 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 中做一些简单的事情来让它工作,但我对此很陌生。
最佳答案
您可能违反了same origin policy限制。除非您的网站托管在 www.youtipit.org
上,否则您无法向其发送 AJAX 请求。对于此限制,有两种可能的解决方法:
- 远程站点支持JSONP (注意与 JSON 的区别)在这种情况下,JSON 响应被包装在一个特殊的回调函数中。为此,远程服务器必须支持它。如果是这种情况,请检查 API 文档。您显示的示例 url 在浏览器中运行,返回纯 JSON。
- 如果远程服务器不支持 JSONP,但仅发送 XML 或 JSON,您将必须在您的域上编写一个 Controller 操作,该操作将充当您的域和远程域之间的桥梁。然后,您将 AJAX 请求发送到此 Controller 操作,该 Controller 操作又将使用
WebClient
向远程域发送 HTTP 请求。
关于jquery - Ajax 调用从 MVC3 Controller 获取 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925743/