2016-06-24 88 views
0

我不知道這是否是重複的帖子,如果是的話很抱歉。我正在使用jquery.getJSON來加載我的服務器上的json工作得很好。儘管如果我嘗試在另一臺服務器上加載json文件,它不起作用。我知道我在這裏沒有任何代碼(因爲沒有太多意思),但我只想知道我是否錯誤地使用了它,或者它不應該加載外部文件。如果這影響了任何內容,我正在使用iOS Safari瀏覽器。Jquery外部加載jquery.getJSON

編輯:我看了一下控制檯(idk錯誤的真正含義是什麼,它只是通過它試圖從中獲取json的url的紅色),它看起來並沒有實際接收數據。另外,千萬要記得我在的iOS,而不是臺式機,所以我可以不看在控制檯的「開發標籤:P

編輯2:很好,我想我得到它的工作http://skitty.xyz/getJSON/

+0

檢查瀏覽器開發工具網絡實際請求clues.Use Ajax錯誤處理程序也 – charlietfl

回答

0

你說你正在使用jQuery的Ajax請求從服務器加載一些JSON數據?

  1. 勾選「不工作服務器」具有相同的終點作爲您的服務器。
  2. 檢查,如果你想要的網址從中獲取數據是正確的。
  3. 檢查控制檯是否記錄了任何錯誤。

而且從http://api.jquery.com/jquery.getjson/

引述「附加註釋:

由於瀏覽器的安全限制,大多數‘Ajax’的請求都受到同樣的原產地政策;請求不能成功地檢索數據來自不同的域,子域,端口或協議 腳本和JSONP請求不受相同的源策略限制。「

0

你很可能遇到路徑問題; $.getJSON的目的是通過http GET請求獲取數據,所以是的,它的目的是遠程工作。要診斷您的問題,請確保您可以首先訪問瀏覽器中的json文件:http://domain.com/my_data.json。如果這樣的作品,用其作爲URL傳遞到$.getJSON

$.getJSON('http://domain.com/my_data.json', function(data) { 
    // do something with your data 
}); 

http://api.jquery.com/jquery.getjson/

+0

所以我敢肯定,我有正確的代碼,它的工作在我的本地文件加載其他就好了json來自網站......但是當我將所有相同的代碼轉移到我的網站時,它不起作用。 – Skitty

+0

如果您可以發佈鏈接到您的網站或將它加載到主要/小提琴,我們可以看看。 – Cam

+0

好的,我寫了這個,它在我的本地文件上工作得很好,但可惜我的網站上沒有... http://skitty.xyz/getJSON/ – Skitty

0

jquery.getJSON使用AJAX這是所有關於外部資源。這裏有幾件事要檢查它是不是在外部資源上工作:

1:你指定的路徑是否正確?用法是jquery.getJSON(路徑,回調)。路徑應該是你可以放在瀏覽器中看到的東西。如果不正確的路徑是您的問題,您將在控制檯中看到404。

2:資源http和您的網站https?瀏覽器安全功能會阻止安全頁面上的不安全資源。您會在控制檯中看到此錯誤。

3:是否在外部資源上爲您的站點啓用了CORS(跨源資源共享)?服務器有時會使用IP和域的白名單來確定允許哪些來源提出請求。您還會在控制檯中看到此錯誤。

可能還有其他一些東西需要尋找,但這是我開始的地方。

0

此外,通過各種手段,使用Safari的調試功能來LQQK at實際 HTTP所傳回的往復響應你在做什麼樣的數據流。 (您可能需要單擊首選項以查看「開發」菜單,該菜單將帶您進入「顯示Web檢查器」及其網絡選項卡。)

此方法將立即回答許多問題,中心的方法不會那麼容易地告訴你。 (當然,您也可以在同一時間查看JavaScript控制檯......)「實際數據流請」。 Safari會告訴你「你的應用究竟發送了什麼字節」實際發送到服務器,以及「服務器發送什麼字節」作爲回報。 「無價!™」