当前位置: 首页 > 面试题库 >

如何从既没有CORS也没有JSONP的来源使用网页上的JSON?[关闭]

拓拔弘扬
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

7年前关闭。

互联网上的某些JSON数据服务被设计为仅由服务器使用,而忽略了仅由Web应用程序直接使用的可能性。

由于跨站点的问题,如果此类服务提供了JSONP格式或启用了CORS支持,则它们将起作用。

我想制作一个小的JavaScript工具,该工具可以调用仅返回JSON但不支持并且不支持的在线资源。

一个示例案例是我正在制作的单页应用程序,该应用程序无法找到CORS或提供的唯一数据源JSONP。作为单页应用程序,它没有自己的服务器,因此必须遵守同源政策。

在这种情况下有哪些策略可用?


问题答案:

**一种方式是找到一个可以访问的代理JSON数据源,然后将其用于转化到工作与你的Web应用程序JSONCORS或者你可以不用担心跨站点关注处理任何其它格式。

雅虎的“ YQL”就是这样一种代理。

YQL支持JSONP和CORS。

因此,如果您的浏览器也支持CORS,则可以将其视为免费的JSON到JSON代理服务器。如果不是,那么它也是一个免费的JSON到JSONP代理:

这是我与jQuery结合使用的示例:

$.getJSON("http://query.yahooapis.com/v1/public/yql",
  {
    q:      "select * from json where url=\"http://airportcode.riobard.com/airport/" + code + "?fmt=JSON\"",
    callback: gotJSON, // you don't even need this line if your browser supports CORS
    format: "json"
  },
  function(data){
    if (data.query.results) {
      /* do something with
        data.query.results.json.code
        data.query.results.json.name
        data.query.results.json.location
      */
    } else {
      /* no info for this code */
    }
  }
);

还有jsfiddle上的一个版本…



 类似资料:
  • 问题内容: 我知道以前曾问过这个问题,但是没有一个答案对我有用!我正在做一个学校项目,我想获取学校服务器上动态计划文件返回的HTML(为我的项目解析)。 我想要HTML的页面是:https : //telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched 我认为未为学校服务器文件启用CORS,并且我不知道它是否支持JSONP … 如何设置跨域请求以从该页面

  • 所以我尝试在我的应用程序中实现一个搜索功能。我在应用程序栏中添加了一个SearchView,并配置了清单,将意图指向正确的活动。但我有一个特殊的情况:我想在SearchView生成的意图中添加额外的信息,以传递给我的SearchableActivity(在我的例子中是SearchEventsActivity类)。为此,我想让我的MainActivity类成为可搜索的,它可以通过捕捉意图,将额外的信

  • 虽然已经通过API网关设置了CORS,并且设置了头,但在尝试在Chrome内从AJAX调用API时,我仍然收到以下错误: XMLHttpRequest无法加载http://xxxxx.execute-api.us-west-2.amazonaws.com/beta/yyyyy。请求的资源上没有“access-control-allow-origin”标头。因此不允许访问源“null”。响应的HTT

  • 我有一个多模块Kotlin Gradle项目: 有源代码,其他两个没有。的人生目标是将作为;这是Spring Boot的标准惯例有一些测试代码,但在中没有。 问题是,当我试图发布这些项目时,它失败了。 这是真的,我可以看到

  • 我有一个电子应用程序,我想建立一个自动更新。我跟踪了这篇博文,做了一个小演示,它工作很好,有一些小改动。然后我尝试用我的实际项目来实现它,现在我得到了一个错误。 我已经有了Electron-Builder.yml文件,我甚至尝试过设置GT_TOKEN和变量,但它仍然抛出相同的错误。

  • 示例: 我没有任何对或的引用,它们也会被关闭吗? 谢啦