我有以下代码。我用它来从另一个域地址获取一些数据。在我的本地网络中。如果有人能告诉我我做错了什么或给我做出决定。
<html>
<title>Jquery Json</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($){
$.ajax({ // ajax call starts
type:"GET",
async: false,
cache: false,
contentType: "application/json; charset=utf-8",
crossDomain: true,
//url: "http://10.1.128.107/JsonDohaBackToTemplate/getProjectIDByMAC.svc/media/?projectid=1",
url: "http://fantasy.premierleague.com/web/api/elements/415/?_=1357337284504",
success: function(data) {
$("body").append(JSON.stringify(data));
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
},
dataType: "jsonp"
});
});
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:1)
Javascript不允许跨域加载资源。您需要查看跨源资源共享(cors)。看看这些问题:
Make cross-domain ajax JSONP request with jQuery
当然还有维基百科:
答案 1 :(得分:0)
从您的调用中删除以下内容:async,cache,crossDomain,contentType和error。这些都不需要进行跨域调用,但可能是它不适合你的原因,因为它看起来像你有一个通常的调用。例如。永远不会为跨域调用错误处理程序
以下是您的最低要求:
$.ajax({
url: '',
success: function (data, textStatus, jqXHR) {
},
dataType: 'jsonp'
});
更新:由于您获得的是XML而不是jsonp,因此您只有两个选择:
1)如果您有权访问服务器,请在响应中添加以下标题:
name="Access-Control-Allow-Origin" value="*"
name="Access-Control-Allow-Headers" value="Content-Type"
2)使用服务器端代理