【问题标题】:loading JSON data from an API from javascript从 javascript 的 API 加载 JSON 数据
【发布时间】:2011-10-04 03:37:32
【问题描述】:

我需要使用一个 web api,它位于这里 http://46.253.202.174:8080/ws-api/v1/rest/zdata/codesByJurAndUsage?jur=Boston,%20MA&usg=barber

我没有任何关于它如何实现或访问 API 代码的详细信息,我只是在尝试使用 API,如果我在浏览器中输入 url,我可以看到 JSON 返回数据,但是当我尝试使用 $.getJSON 调用 API 时,它给了我一个拒绝访问错误。我知道这是一个跨域问题。我还尝试了一些其他的东西,比如 jsonp 数据类型,但没有成功。我的问题是,如果我能够在浏览器中看到结果,我是否应该能够从脚本中获取结果,或者它不一定是真的? 其次,如果到目前为止我尝试过的事情没有成功,还有其他方法吗?

谢谢

【问题讨论】:

标签: javascript jquery json cross-domain jsonp


【解决方案1】:

您是对的,由于Same Origin Policy 的限制,您将无法通过$.getJSON 加载此数据。您需要通过 JSONP 加载它,或者,如果服务不支持 JSONP(看起来不支持),则通过代理加载。几个选项:

  • 您可以通过 PHP 或其他服务器端语言在自己的服务器上设置代理。这将允许您从自己的服务器请求数据,绕过同源限制。为此,您可能会查看像 Simple PHP Proxy 这样的项目。

  • 您可以使用YQL as a proxy - 它通过 Yahoo! 的服务器发送数据,然后您可以通过 JSONP 加载它。在 jQuery 中应用这种技术是 discussed in this article

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 2018-06-28
    • 1970-01-01
    • 2016-04-14
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    相关资源
    最近更新 更多