2013-02-19 53 views
0

我試圖讀取使用PhoneGap的從索引文件jQuery的.txt文件使用jQuery txt文件,但jQuery函數沒有返回閱讀的PhoneGap

這裏是我的代碼:

jQuery.get('http://gridberry.com/uploaded_files/E1BDA03F-3F9A-45E7-B16D-78F68C21DCD8.txt', function(data) { 
    alert(data); 
}); 

您可以檢查txt文件的鏈接;它有數據。問題是什麼?

+0

你可能運行到同源策略。看到這一點:http://stackoverflow.com/questions/2697557/accessing-web-service-from-jquery-cross-domain – Brian 2013-02-19 02:13:47

+0

我得到了404,當我試圖打開文本文件,在瀏覽器中。你也嘗試在模擬器中運行它。你不會在模擬器中遇到交叉問題,所以這應該起作用。但請先檢查文件的鏈接。 – 2013-02-19 06:56:10

回答

2

不能使用Ajax請求來從不同的域訪問數據。一個簡單的解決方法是製作一個PHP腳本,像這樣從URL下載內容。

echo file_get_contents('http://gridberry.com/uploaded_files/E1BDA03F-3F9A-45E7-B16D-78F68C21DCD8.txt'); 

.get()腳本在您的服務器上。

+0

我不能寫在PhoneGap的文件 – 2013-02-19 02:21:55

+0

PHP肯定可以使Ajax請求到不同的域。被稱爲[CORS](http://www.w3.org/TR/cors/)。 – 2013-02-19 07:57:51

0

嘗試jQuery('#where_it_displays').load(file_url_here);

(jQuery doc)

+0

不工作對我來說..也許有一些缺失的問題,我想從電話www文件加載txt文件? – 2013-02-19 02:20:08

+0

你把你的加載函數放在jQuery('document')。ready()函數中嗎? – 2013-02-19 22:52:35

1

它可能是一個跨域調用,因此它的失敗, 你可以做的兩件事情無論是。 1.)嘗試執行Jsonp來進行此調用,以便您可以使跨域呼叫正常工作。

2)把一個腳本標記與源作爲您的網址和閱讀在你的JavaScript

2

嘗試你的代碼中的jsfiddle script標籤內的內容給了我這個錯誤:

的XMLHttpRequest無法加載http://gridberry.com/uploaded_files/E1BDA03F-3F9A-45E7-B16D-78F68C21DCD8.txt。 Access-Control-Allow-Origin不允許產生http://fiddle.jshell.net

這是一個經典的跨域問題......你不能打電話給你的域的方式之外的URL。

+0

所以你認爲沒有辦法在phonegap中讀取.txt文件? – 2013-02-19 02:33:56

+0

你可以使用jsonp格式而不是純文本嗎?使用jsonp數據類型的Ajax調用是可以解決跨域問題的一種方式(http://en.wikipedia.org/wiki/JSONP)。 – 2013-02-19 03:29:04