【问题标题】:JSON get with JS用 JS 获取 JSON
【发布时间】:2014-02-14 15:58:16
【问题描述】:

我有这个网址:http://surfujpametno.roditelji.me/2014/01/23/surfujpametno-aplikacija-za-android/?json=get_all_posts

我想用 JS 从那个 URL 中获取内容。我读过它,我看到了一些关于原产地政策的东西。我需要那个吗? 你能写一些小例子如何从这种类型的 URL 中获取一些内容

【问题讨论】:

  • 欢迎使用 Stackoverflow。如果您可以通过展示您为实现您想要的目标而失败的尝试来为您的问题付出更多努力,那就太好了。具体说明到底是什么失败了。要求复制和粘贴 sn-p 很可能会导致用户忽略您的问题。此外,您使用的标签与您的问题无关。
  • 既然你正确地标记了这篇文章,你显然知道完成这项工作需要哪些技术。请先做一些研究,如果您的努力没有产生预期的结果,请毫不犹豫地发布您的问题

标签: javascript jquery ajax json url


【解决方案1】:

您可以使用 jQuery 库中的 getJSONsee here for more informations 并解析回调数据。

$.getJSON("http://surfujpametno.roditelji.me/2014/01/23/surfujpametno-aplikacija-za-android/?json=get_all_posts", function( data ) {

  // parse your data
});

或:

$.ajax({
   url: "http://surfujpametno.roditelji.me/2014/01/23/surfujpametno-aplikacija-za-android/?json=get_all_posts",
   dataType: 'jsonp',
   success: function(data) {

      // parse your data
   },
});

如果您需要跨域请求,请使用 jsonp 参数。

【讨论】:

  • 你为什么推荐一个功能却演示另一个功能?
  • 没有。我对你的回答发表了评论。在我发表评论之前,答案必须存在。即使是这种情况,我也看不出它如何导致您的答案的第一句话能够与构成最后一段的代码示例有所不同。
  • 这段代码无论如何都不起作用。它抱怨 data 没有定义。如果我解决了这个问题,那么它会抱怨这是一个跨域请求。
  • @Quentin ...你有什么问题?我已经发布了我的答案。这是官方文档中的一个 jQuery 示例!
  • 当然,此代码仅适用于“surfujpametno”域。如果你想从另一个域获取这个 JSON,你需要 jsonp(跨源请求)。
【解决方案2】:

您可以使用 JQuery 的 ajax 和 JSONP 来解决过去的原始策略问题

http://jsfiddle.net/Sam88/DkLUL/

$.ajax({
   type: 'GET',
   url: url,
   async: false,
   jsonpCallback: 'callback',
   dataType: 'jsonp',
   success: function(json) {
      console.log(json.status);
   },
   error: function(e) {
      console.log(e.message);
   }
});

【讨论】:

  • avoid link only answers。答案“仅是指向外部网站的链接”may be deleted
  • contentType: "application/json", 没有意义。这是一个 GET 请求,您没有请求正文来指定其内容类型。
  • 很抱歉,这只是一个标准的 jsonp 调用,没关系
  • 对不起,复制粘贴的例子,你是对的,那部分没用
【解决方案3】:

使用 jQuery:

$.ajax({
  type: 'GET',
  url: 'http://surfujpametno.roditelji.me/2014/01/23/surfujpametno-aplikacija-za-android/?json=get_all_posts',
  dataType: 'jsonp',
  success: function(data) {
    do_things(data);
  },
});

【讨论】:

  • 这不起作用。它会引发语法错误。如果我解决了这个问题,那么它会抱怨它是一个跨源请求。 jsbin.com/mamaj/1
  • 编辑后,仍然有语法错误。这只是一段代码。解释一下你做了什么。
  • 语法错误已修复。很多比这更简单的问题的答案都有更糟糕的解释。你有足够的代表来编辑它,如果它打扰你做研究并自己修复它。
猜你喜欢
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多