2013-04-03 209 views
-3

我想从一个返回JSON字符串中的数据的URL中获取数据。如何从URL获取JSON字符串?

网址:http://forums.zybez.net/pages/2007-price-guide-api?term=adamant+axe

我想要做的是存储此字符串变量像这样:
VAR jsonData = '[从URL的JSON字符串]';

但我不知道如何从URL中获取JSON字符串。 任何帮助将不胜感激! :-)

+0

如果这是跨域,请使用'$ .getJSON'或JSONP。我敢打赌,这是跨域,所以你将需要使用JSONP,但服务器将必须能够容纳JSONP – Ian

+3

该服务似乎不支持CORS或JSONP,所以简短的答案是;您无法从客户端获取该数据,您需要一个可以调用的服务器端脚本。 – adeneo

+0

如果您想在自己的网站上从自己的JavaScript代码中执行此操作,则不能。浏览器不会让您从具有不同网域的网址获取内容。 – Pointy

回答

0

jQuery.getJSON()函数使您可以轻松访问从服务器返回的JSON数据。 http://api.jquery.com/jQuery.getJSON/

+1

这可以从浏览器JavaScript控制台,但不是来自具有不同域的网站上的JavaScript代码。 – Pointy

0

这是您试图执行的X域请求。 默认情况下没有任何进一步的努力,这是被禁止的 - 出于安全原因。

您可以实现JSONP回调。 然后,您将发送回调的名称(必须在每个请求中生成)到您希望从中接收数据的服务器,并且作为回报,此服务器将为您提供一个可以调用以检索的函数你的数据来自。

另一种选择是CORs服务器 http://enable-cors.org/server.html您请求的HTTP-Server数据必须有一个软件模块处理您的请求,发送正确的MIME类型等等。

不过,还有另一种方式: 使用“包装”

你可以设置一个工作在中间的Web服务器。 它会下载您的请求并转发给您。 就像你会直接从这个服务器请求数据(显然你这样做,但它不是提供数据的实际服务器)。

实现此目的的一种方法是使用PHP脚本下载数据并将其引导给您。

一个样本实现的基本部分:

  • HTML文件中请求数据: processData.html(请求数据从127.0.0.1/ 访问getdata.php位置? = URL

  • 您的php文件充当包装并从下载数据URL(其中位置是您发送到包装文件的参数): getData。PHP

  • 地方实际的服务器是提供给PHP文件作为参数位置 (确保它发送给你的PHP文件之前为了躲避URL参数)

URL

有更多的方法来实现你想要实现的。

祝你好运!