簡體   English   中英

使用jquery.getJSON從外部加載Json

[英]Externally load Json with jquery.getJSON

我不知道這是否是重復的帖子,抱歉。 我正在使用jquery.getJSON在服務器上加載一個json,效果很好。 雖然,如果我嘗試在其他服務器上加載json文件,則無法正常工作。 我知道我在這里沒有任何代碼(因為沒有太多意義),但是我只想知道我使用的是錯誤的還是不應該加載外部文件。 如果有影響,我正在使用iOS Safari瀏覽器。

編輯:我已經看過控制台(idk,錯誤的意思是什么,它只是用x表示試圖從其中獲取json的url帶有紅色),看起來好像沒有實際接收到數據。 另外,請記住我在iOS上 ,而不是台式機上,所以我看不到“開發”標簽中的控制台:P

編輯2:太好了! 我想我可以使用了! http://skitty.xyz/getJSON/

您是說您正在使用jquery ajax請求從服務器加載一些json數據嗎?

  1. 檢查“不工作的服務器”與您的服務器具有相同的端點。
  2. 檢查您要從中獲取數據的URL是否正確。
  3. 檢查控制台是否記錄了任何錯誤。

另請引用http://api.jquery.com/jquery.getjson/

“補充筆記:

由於瀏覽器安全性的限制,大多數“ Ajax”請求都受相同的原始策略限制; 該請求無法從其他域,子域,端口或協議成功檢索數據。 腳本和JSONP請求不受相同的原始策略限制。”

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

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

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

jquery.getJSON使用ajax來處理外部資源。 這里有幾件事要檢查它是否在外部資源上不起作用:

1:您指定的路徑正確嗎? 用法是jquery.getJSON(path,callback)。 路徑應該是您可以在瀏覽器中看到的東西。 如果您輸入的路徑不正確,則會在控制台中看到404。

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

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

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

另外, 無論如何,請使用Safari的調試功能對實際 HTTP HTTP數據流進行LQQK at響應,以響應您的操作。 (您可能需要單擊首選項以查看“開發”菜單,該菜單將帶您進入“顯示Web檢查器”及其“ 網絡”選項卡。)

這種方法將立即回答許多以JavaScript為中心的方法不會立即告訴您的問題。 (當然,您也可以同時查看JavaScript控制台。)“請實際使用數據流 。” Safari會告訴你“什么字節”你的應用程序實際發送到服務器,而“正是字節”作為回報發送服務器。 “無價!™”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM