2009-08-25 13 views
1

私はダッシュコード付きのiPhone Webアプリケーションを開発しています。私のアプリは、私はiPhoneのシミュレータでそれを参照すると正常に動作します。 Webサーバーにデプロイすると、XMLHttpRequestsからの応答は得られません。ここで私が使用したコードがあります:私はonreadystatechangeにハンドラをアタッチするとiPhoneのダッシュコードxmlhttprequest応答なし

function get(feedURL, handler) { 
    var onloadHandler = function() { handler(xmlRequest); };  
    var xmlRequest = new XMLHttpRequest(); 
    xmlRequest.onload = onloadHandler; 
    xmlRequest.open("GET", feedURL); 
    var credentials = encodeBase64(_login.username + ':' + _login.password); 
    xmlRequest.setRequestHeader("Authorization", "Basic " + credentials); 
    xmlRequest.send(); 
} 

、私は、要求が状態4に行く私も私のサーバーログにリクエストを見ることができる見ることができます。私はまた、 "キャッシュなし"要求ヘッダーを追加しましたが、これは役に立ちませんでした。私はこれを、私が持っているホスティングパッケージのローカルWebサーバーで試してみましたが、動かす運を得られません。

+0

だから 'responseText'は' readyState'が 'に4'に到達したときに空の文字列ですか? – kangax

+0

はいそれはkangaxです – dlinsin

+1

英数字のユーザー名とパスワードはありますか?私は、基本認証を使ってiPhoneがちょっと薄れているという標準SDKを使用していることに気づいた。手動でヘッダーを設定する代わりに、http:// user:password @ host/path URLを使用してみましたか?おそらく、XMLリクエストは、応答として受け取ったBasic Authヘッダを処理する予定ではなく、何も返さない。ユーザー名とパスワードに応じて、それらをパーセントでエンコードしてURLに貼り付ける必要があります。 –

答えて

0

DashCode 3.0(Snow Leopardの新機能)の一部である新しいデバッグ機能を試してみることがありますか?実際には答えはありませんが、おそらくシーンの変化、つまり新しいデバッガが何かを揺さぶるでしょう。

1

iPhoneは、おそらくリクエストヘッダを手動で設定しているので、基本認証ヘッダを受け取ることを期待していません。 URLにユーザー名とパスワードを追加し(パーセントエンコーディング後)、そのようにリクエストを実行してください。

2

暗いところで撮影しましたが、apple docsと言っています。

URLリクエスト 先のドメインが スクリプトを含むページを提供 1と同じでなければなりません。残念ながら、残念ながら、 クライアント側のスクリプトは のWebサービスデータを他のソースから取得して、 のデータをページにブレンドできません。 すべてが同じ ドメインから来ている必要があります。このような状況の下では、 セキュリティを心配する必要はありません アラートはユーザーを恐怖に感じます。

statusとstatusTextの値は何ですか?また、getAllResponseHeaders()を試してください。そのような

それはあなたが望むだけの基本的な認証だ場合も、あなただけ開くようにそれを渡すことができます():

open("method", "URL", asyncFlag, "userName", "password")