如何在javascript中从链接网址获取数据请求?

时间:2016-06-07 11:18:14

标签: javascript

我想使用Javascript从此网址加载数据:http://gateway.fpts.com.vn/monitor/realtime/?s=aaa

此网址在我的浏览器中返回数据,如下所示:

Screenshot - data as shown in a web browser

这是我尝试过的代码:

<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'访问。

5 个答案:

答案 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);