2014-12-19 31 views
3

我試圖使用Google驅動器作爲託管JSON文件的測試臺。這使我可以將我的客戶端文件交給我的設計師同事,而無需設置WebApi控制器或nodeJS服務器。通過jQuery訪問谷歌驅動器爲JSON

我嘗試在我的JavaScript調用它是這樣的:

$.ajax({ 
     type: "POST", 
     dataType: 'json', 
     contentType: "application/json", 
     url: "https://drive.google.com/file/d/0B-6bXDnuW6gPT3NUQ1VSQW12Z1k/view?usp=sharing" 
    }) 
    .done(function(data) { 
    // reference data here 
    alert(data); 
    }); 

這是我試圖找回數據:

[{ 
      "Name": "Soren Kierkegaard", 
      "Timestamp": "1301190400", 
      "Comment": "Life is understood backwards, but it is lived forwards.", 
      "StaticURL": "./img/some_guy2.png" 
     }] 

但我得到的結果:

XMLHttpRequest無法加載 https://drive.google.com/file/d/0B-6bXDnuW6gPT3NUQ1VSQW12Z1k/view?usp=sharing。 請求的 資源上沒有「Access-Control-Allow-Origin」標題。因此不允許原產地'null'訪問。

這使我懷疑瀏覽器(或者jQuery?)希望響應頭包含一個'Access-Control-Allow-Origin'鍵/值對。

除非我可以添加這個作爲鍵/值對在JSON?這將爲我的數據添加一個外層,但我應該可以通過客戶端JavaScript中的OK進行解析。

我試過GET/POST和數據類型的幾種組合。 Jsonp似乎建議我必須在Google上設置腳本,並且我沒有看到在Google上設置jsonp的簡單方法,或者要求Google在響應標題中添加內容。通過不同的平臺,不同的結果

類似StackExchange後:JSON not parsed

+2

你不能這樣做,因爲AJAX same-的這起源政策。 – Barmar

+1

如果您想以編程方式訪問Drive文件,則需要使用Drive API。這不像使用Drive web應用程序的相同URL那麼簡單。請參閱https://developers.google.com/drive/ – pinoyyid

回答

2

我能夠通過使用myjson.com作爲主機提供商來解決這個問題。

我真的不明白靜態json文件如何造成安全隱患。動態json - 可能 - 但如果它源自谷歌驅動器上的文件,它不會動態創建,對吧?

Google雲端硬盤API需要阻止憑證圈跳過......這不利於快速原型設置或設置暫存環境。