2012-05-18 49 views
1

我認爲這個問題很簡單,但我似乎無法找到答案。 一個網站(不同來源,無法控制它)正在提供一些JSON文件。我想要我的腳本的一些變量來獲取這些文件的內容。我不在乎它是否同步完成。你會怎麼走?將外部JSON文件加載爲一個javascript變量

+1

你可以使用jsonp嗎? http://en.wikipedia.org/wiki/JSONP或jQuery的方式http://api.jquery.com/jQuery.ajax/ – benqus

+0

有沒有乾淨的方式? – Cystack

+0

據我所知,沒有瀏覽器。從corse的JavaScript。 – benqus

回答

1

使用JSONP由使用您的網址,使用的參數,以及腳本文件添加到您的網頁

www.example.com/process?value=1 &回調= Func鍵

將腳本添加到您的頁面。

var url = "www.example.com/process?value=1&callback=Func"; 
var script = document.createElement('script'); 
script.type= ' text/javascript'; 
script.src = url; 
document.getElementsByTagName("body")[0].appendChild(script); 

現在您可以使用回調函數或訪問從此腳本添加的變量。

UPDATE

在你JSONP腳本結束時,你可以打電話給你的回調函數 例如:PHP

<?php 
if (isset($_GET['callback'])) { 
    echo $_GET['callback']."();"; 
    // Func(); // will call your function and use your variables. 
} 
+0

謝謝... JSONP就是那麼...現在,如果我將它託管在我的服務器上,那麼代碼段會是什麼? – Cystack

+0

看到我的更新,你可以在最後調用這個函數 – Ibu

+0

這意味着我可以控制「example.com」服務器......但我不知道! – Cystack

1

如果遠程主機不提供JSONPCORS,那麼你會需要在您自己的域中放置一個服務器端組件,爲您提供JSON並在本地提供服務。