簡體   English   中英

JQuery Mobile + Phonegap:$ .ajax調用不起作用

[英]JQuery Mobile + Phonegap : $.ajax calls not working

我一直在尋找解決方案,但一路都失敗了。 以下代碼在JQuery 1.4.4,JQuery Mobile 1.0a2和PhoneGap 0.9下運行良好。 但是,當我將它轉移到JQuery 1.7.1,JQuery Mobile 1.1.0和PhoneGap 1.5時; 它繼續在錯誤下跌。 我通過Fiddler跟蹤了http調用,並意識到ajax確實調用了URL,但為什么它會出錯而不是成功? 請幫忙!

$.ajax({
type: "GET",
cache: false,
url: updateServer+'update.xml',
dataType: "xml",
error: function(xhr, settings, exception){
    alert('The update server could not be contacted.');
},
success: function(xml){
    // success code     
    }
});

確保您可以從模擬器本身訪問Web服務,並允許應用程序訪問Internet連接。

要在模擬器中執行此操作,請打開默認瀏覽器並輸入URL。 它不應該給你404或任何例外。

我有Phonegap 1.5的這個問題。 降級到Phonegap 1.4.1解決了這個問題。 我連續幾天感到沮喪,無法理解這個問題。

jQuery Mobile在關於使用PhoneGap實現的文檔中有一整頁。 在這里查看。

http://jquerymobile.com/test/docs/pages/phonegap.html

您必須設置權限以允許跨域ajax調用。

也! 如果要從Web應用程序移植,請記住更改html文件中的代碼。 很可能你打電話給網址“../api/handler.php”或其他東西。 您需要將所有這些調用絕對用於PhoneGap。 “http://mydomain.com/api/handler.php”

好吧,我認為問題實際上是URL本身。 URL地址有效,因為它可以訪問,但它不屬於同一個域。 例如,我的帶有JQuery的html文件位於http://www.yahoo.com/index.html,但我嘗試調用的URL是http://www.google.com

由於安全問題,瀏覽器阻止從托管在一個域上的頁面到托管在不同域(同一源策略)上的頁面進行ajax調用。 我的解決方案是使用php文件從另一個域檢索相關數據,而html(使用JQuery)調用php文件如下:

 $.ajax({ type: "GET", cache: false, url: 'getcontent.xml', dataType: "xml", error: function(xhr, settings, exception){ alert('The update server could not be contacted.'); }, success: function(xml){ // success code } }); 

感謝您提供的所有幫助!

暫無
暫無

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

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