2013-04-03 206 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

有更多的方法來實現你想要實現的。

祝你好運!