1

ダッシュコードを使用して iPhone Web アプリを開発しています。iPhone シミュレーターでアプリを参照すると、アプリが正常に動作します。Web サーバーにデプロイすると、XMLHttpRequests からの応答がありません。私が使用するコードは次のとおりです。

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();
}

onreadystatechange ハンドラーをアタッチすると、リクエストが状態 4 になっていることがわかります。サーバー ログでもリクエストを確認できます。「キャッシュなし」のリクエストヘッダーも追加しましたが、役に立ちませんでした。私が持っているホスティングパッケージのローカルWebサーバーでこれを試しましたが、うまくいきませんでした。

4

3 に答える 3

2

暗闇の中でのショットですが、アップルのドキュメントはこれを言っています.

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

status と statusText の値は何ですか? 詳細については、 getAllResponseHeaders() も試してください。

また、必要な基本認証のみの場合は、次のように open() に渡すだけです。

open("method", "URL", asyncFlag, "userName", "password")
于 2009-09-18T19:48:45.053 に答える
1

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

于 2009-09-16T07:22:43.873 に答える
0

DashCode 3.0 (Snow Leopard の新機能) の一部である新しいデバッグ機能を試してみませんか? 本当の答えではありませんが、状況の変化 (または新しいデバッガー) によって、何かが緩む可能性があります。

于 2009-08-30T16:10:57.440 に答える