我使用以下代码获取json编码结果
$.get('localhost/hospital/index/json', function(data) {
alert(data);
});
这是localhost URL的工作。但我想从外部服务器获取结果。我尝试按照示例url来执行此操作。
$.get('hospitalsystem.dev/index/json', function(data) {
alert(data);
});
但它不起作用。请帮帮我。
答案 0 :(得分:2)
在代码段中省略网址中的http://
可能会阻止请求生效,如this example所示。
AJAX请求受Same Origin policy限制,这意味着您只能向同一个域发出请求。有三种主要方法可以解决这个问题:
JSONP涉及向API添加参数以充当javascript文件。 JQuery can使这与普通的AJAX请求一样简单。这方面的一个大问题是,它要求您信任您所呼叫的API的提供者不要做任何恶意的事情,例如将cookie传回给他们。
Cross-Origin Resource Sharing是一种更优雅的解决方案,但仅适用于in some browsers.
Creating a proxy对于AJAX请求几乎可以使用任何API,但会增加一些额外的开销,并且每个AJAX请求有两个请求而不是一个请求可能会影响性能。
答案 1 :(得分:0)
出于安全原因,您无法使用AJAX从其他域读取数据。
您应该修改服务器以使用JSONP。
答案 2 :(得分:0)
然后使用JSONP。因为当url在另一台服务器上时,AJAX调用不起作用。
所以你需要做的是阅读JSONP并找到一种方法来使用它。
这基本上是JSON,但是以js文件的形式,如
<script language="javascript" src="/js/my.js"></script>
而只是/js/my.js
使用您的位置,没有其他办法,相信我。
使用jQuery动态加载来自不同网址的脚本并使用它们返回的数据。
答案 3 :(得分:0)
根据您的服务器功能,您可以编写代理脚本。你的JS要求代理获取并响应json文件。