我想使用Javascript从此网址加载数据:http://gateway.fpts.com.vn/monitor/realtime/?s=aaa。
此网址在我的浏览器中返回数据,如下所示:
这是我尝试过的代码:
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<div id= "stage"></div>
<script type = "text/javascript" language = "javascript">
var url = "http://gateway.fpts.com.vn/monitor/realtime/?s=aaa"
$.ajax({
url: url,
cache: false,
method: "GET",
})
.done(function( html ) {
$( "#stage" ).append( html );
});
</script>
</body>
</html>
但我收到此错误:
XMLHttpRequest无法加载 http://gateway.fpts.com.vn/monitor/realtime/?s=aaa&_=1465298988417。没有 请求中存在“Access-Control-Allow-Origin”标头 资源。因此,不允许原点'null'访问。
答案 0 :(得分:1)
您正在申请来自域http://gateway.fpts.com.vn
的数据cross-origin http request,该数据与您所显示的html文件的数据不同,请说明http://www.requesting-server.com
要允许cross-origin resource sharing,您应在请求的服务器http://gateway.fpts.com.vn
上设置以下标头。
要允许来自任何域的请求,请使用*
作为通配符(不太安全):
Access-Control-Allow-Origin: *
或
允许来自特定域的请求:
Access-Control-Allow-Origin: http://www.requesting-server.com
您还可以查看解决同一问题的this帖子。
答案 1 :(得分:1)
除了@Orions评论(https://stackoverflow.com/a/37678620/633781)之外,您还需要在请求中向服务器提供以下标题,以使其有效:
Origin: <your domain, e.g. http://example.com>
据我所知,jQuery会自动为您完成此操作。不过,您可以在浏览器的开发工具中查看请求标头,以确保它符合要求。您可以将自己的标头添加到使用jQuery发出的请求中(https://api.jquery.com/jquery.ajax/)
答案 2 :(得分:0)
您必须从下面的链接导入jquery库才能使用此代码。 https://jquery.com/download/
$.get( "http://gateway.fpts.com.vn/monitor/realtime/?s=aaa", function( data ) {
console.log(data);
});
答案 3 :(得分:0)
您可以创建ajax请求然后获取数据,如下所示:
$.ajax({
url: "http://gateway.fpts.com.vn/monitor/realtime/?s=aaa",
}).done(function(data) {
$("body").html(data);
});
如果你使用它,请确保包含jquery。
答案 4 :(得分:0)
由于您的数据采用JSON
格式,因此您可以使用$.getJson()
使用简写。下载jQuery library并在每个脚本之上添加。然后将以下代码段放在jQuery库下面的单独脚本中。
(function($){
$(function(){
$.getJson( "http://gateway.fpts.com.vn/monitor/realtime/?s=aaa", function(data) {
console.log(data);
// do something with data....
});
});
})(jQuery || window.jQuery);