2013-01-10 35 views
0

我有一個HTML /我試圖轉換到通過Phonegap Build appPhoneGap的應用程序:jQuery的獲取的getJSON 404錯誤相對URL獲取本地文件時

一切使用PhoneGap的一個應用程序的JavaScript應用程序通過瀏覽器工作正常,而該應用程序遇到的唯一問題是在嘗試加載我的本地資源時,致電getJSON返回404錯誤。

這裏是罪魁禍首:

$.getJSON("./shapes/json/" + abbr + '.json', gotJSON(abbr)); 

我已列入白名單的每個域,只是要確定:

<access origin="*" /> 

這是什麼那是不可能的從PhoneGap的環境?或者我做錯了什麼?

如果需要,我可以在其他地方託管文件並進行跨域的ajax調用,但我寧願將文件放在設備上。

這是目前Android上正在發生的事情,這是目前我可以測試的唯一系統。

UPDATE:

現在我想:

var xhrShapes = new XMLHttpRequest(), xhrSuccess = gotJSON(abbr); 

    xhrShapes.open('GET', config.path + "/shapes/json/" + abbr + ".json"); 
    xhrShapes.onreadystatechange = function(e){ 
     if(this.readyState === 4){ 
      if(this.status === xhrSuccessCode){ 
       xhrSuccess(JSON.parse(this.responseText)); 
      } 
     } 
    } 
    xhrShapes.send(); 

config.path是 「文件:/// android_asset/WWW」 和我得到0作爲一個成功的代碼(這表明'file://'請求成功)。但xhrShapes.responseText是空白的,一切都在JSON.parse的電話中停止。我覺得我錯過了一些簡單的...

+0

「./shapes」=>「../shapes」? –

+0

單點是正確的。 'shapes'文件夾與運行JavaScript的index.html位於同一文件夾中。我正在動態添加一個圖像並設置'src',它可以工作,所以我猜這是HTTP請求的某種問題。 –

回答

1

該問題與代碼無關,而是與文件名區分大小寫......我的abbr變量是大寫,但文件名是小寫。 $.getJSON完美地工作,現在我已經糾正了這一點(儘管現在我的驕傲需要修理)。

相關問題