2012-03-19 25 views
3

私は解決策を模索していましたが、途中で失敗しました。次のコードは、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  
    } 
}); 
+0

どのプラットフォームですか?あなたがブラウザでアプリを試しても動作しますか? – ghostCoder

+0

こんにちは、それはブラウザとエミュレータで動作していません。ブラウザについては、Firefox、IE、Chromeでテストしました。彼らは働いていません:( – yi2ng2

+0

それはないphonegapの問題..それは通常のブラウザで最初に働く...これを試してくださいhttp://www.freelancephp.net/simpleajax-small-ajax-javascript-object/代わりにjquery ajax – ghostCoder

答えて

3

エミュレータからWebサービスにアクセスし、アプリケーションがインターネット接続にアクセスできるようにしてください。

これを行うには、エミュレータ内からデフォルトのブラウザを開き、URLを入力します。それはあなたに404または何か例外を与えるべきではありません。

+0

こんにちはマーティン、はい、ブラウザとエミュレータの両方からURLにアクセスできます.Ajaxがまだ動作しない理由を教えてください。 – yi2ng2

+0

は、ネットワーク/インターネットへのアクセスを許可されたアプリケーションですか? –

+0

実際、JQuery Mobile 1.02aを使用しているJQuery 1.4.4では、コード全体がJQuery 1.7.1とJQueryで提供されていれば、コード全体が正常に動作しています。モバイル1 .1.0、それは期待どおりに動作しませんでした – yi2ng2

0

わかりました。問題は実際にはURLそのものです。 URLアドレスはアクセス可能なので有効ですが、同じドメインに属していません。たとえば、私のhtmlファイルはJQueryでhttp://www.yahoo.com/index.htmlにありますが、私が呼び出しようとしているURLはhttp://www.google.comです。

ブラウザは、セキュリティ上の問題により、あるドメインにホストされているページから別のドメインでホストされているページ(同じ発信元ポリシー)へのajax呼び出しを防止します。私の解決策はここに(jQueryを使って)HTMLは次のようにPHPファイルを呼び出している間に、別のドメインから関連データを取得するために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  
    } 
}); 

ができます与えられ、すべてをありがとう!

3

Phonegap 1.5でこの問題が発生しました。 Phonegap 1.4.1へのダウングレードにより、この問題は解決されました。私は終わりの日々に不満を抱き、問題を理解できませんでした。

+2

はい!コメントありがとうございました。私は1.5から1.7にアップグレードすることで問題を解決しました –

1

jQuery Mobileには、PhoneGapでの実装についてのドキュメント全体があります。ここでそれをチェックしてください。あなたは、クロスドメインAjaxの呼び出しを許可する権限を設定する必要が

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

また、 Webアプリケーションから移植する場合は、HTMLファイルのコードを変更することを忘れないでください。おそらくあなたはurl "../api/handler.php"か何かを呼び出すようにしているでしょう。 PhoneGapで使用するためには、これらすべての呼び出しを絶対にする必要があります。 "http://mydomain.com/api/handler.php"

+0

doc urlはhttp://jquerymobile.com/demos/1.0/docs/pages/phonegap.htmlに変更されたようですが、http: /view.jquerymobile.com/master/demos/faq/how-configure-phonegap-cordova.php –

関連する問題