私はPhonegapアプリケーションを開発したいと思います。私はjQuery Mobileを使用しています。私はPC上でFirefoxを介して開発してテストしているので、ここで説明した問題はPhonegapで取り組むことができません - これはFirefoxのPCの問題です:Phonegap jQuery ajaxリクエストが機能しません
次のコードは機能しません。正しい方向に私:
var loadWeather = function()
{
// Request absetzen
$.ajax(
{
// the URL for the request
url : 'http://www.google.com/ig/api',
// the data to send (will be converted to a query string)
data : {
weather : 'Vienna'
},
// whether this is a POST or GET request
type : 'GET',
// the type of data we expect back
dataType : 'xml',
// code to run if the request succeeds; the response is passed to the function
success : function(xml)
{
parseXML(xml);
},
// code to run if the request fails;
// the raw request and status codes are passed to the function
error : function(xhr, status)
{
alert('Error retreiving weather!');
}
});
}
ステータスが「エラー」、xhr.readyState = 0、xhr.status = 0であるので、私は全くのjQueryの理由ですべての情報を得ることはありません。要求は実行され、応答ヘッダ(Firebugから)は次のようになります。
Accept: application/xml, text/xml, */*; q=0.01
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Connection: keep-alive
Host: www.google.com
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
と200 OK。だからなぜ私はエラーの場合に飛びついているのですか? xhr.isRejected()はtrueを返します。これは何を意味するのでしょうか?
の代わりにXMLを試してみてください。JSONP –
クロスドメインの発信元の制限のために(実際のリクエストで、プロキシスクリプトなしで)テストすることはできません。このAPIはJSONPをサポートしていないようです。しかし、それはクロスドメインの存在がないので、デバイス上のPhonegapの内部で動作する予定です。 – dfsq
@dfsg:あなたのコメントが回答だったら、私はそれを選択したでしょう。ありがとうございました! – ChrLipp