【问题标题】:How to get JSON with jQuery from another domain如何使用 jQuery 从另一个域获取 JSON
【发布时间】:2016-08-05 22:38:59
【问题描述】:

我有一个小页面,我需要从另一个域获取 JSON。如果这样做:

  $.get( "http://dev.frevend.com/json/users.json", function( data ) {
    console.log(data);
    alert( "Load was performed." );
  });

我得到一个错误。我明白它为什么会抛出这个错误,但我不知道如何避免它。 我没有访问服务器。

XMLHttpRequest 无法加载 http://dev.frevend.com/json/users.json。不 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“http://localhost:3000” 访问。

我也尝试使用 JSONP,但据我了解,在这种情况下,服务器应该使用回调函数包装响应,因为我收到了 SyntaxError。

是否可以使用 JSONP 发出此请求? 我试过了

  $.ajax({
    url: "http://dev.frevend.com/json/users.json",
    dataType: "jsonp",
    jsonpCallback: "logResults"
  });

  function logResults(data) {
    console.log(data);
  }

得到了

Uncaught SyntaxError: Unexpected token :

JSON 是有效的,我检查了。

【问题讨论】:

标签: javascript jquery json ajax web


【解决方案1】:

您需要在项目配置中允许访问。 以下网站有更多信息

http://enable-cors.org/server.html

谢谢,

【讨论】:

    【解决方案2】:

    为此目的在 jquery 中使用 JSONP JSONP reference

    【讨论】:

      【解决方案3】:

      尝试在您的 PHP 文件中添加一个标头,该标头负责执行每个请求。

      header('Access-Control-Allow-Origin', '*');
      

      【讨论】:

      • 引用 OP:I have not acces to the server
      • 先生。 @一个。 Wolff:你怎么能把它标记为无用,因为 OP 明确提到 请求的资源上不存在“Access-Control-Allow-Origin”标头。
      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 2018-07-23
      • 2012-10-07
      • 2012-01-25
      • 1970-01-01
      • 2011-12-11
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多