私はSencha Touch 2.1.0を使用しています。私はHTTP GET呼び出しを行っています。これはCORS要求です。したがって、期待どおりにプリフライトHTTP OPTIONSコマンドを送信しています。HTTPオプションフライト前リクエストロード中にChromeで保留状態がキャンセルされました
サーバーにCORSフィルタをインストールして構成しました。私のコードからの呼び出しは昨日までうまくいっていた。突然今日、データのロードが停止しました。 OPTIONS
状態テキスト:「ロードがキャンセル」
タイプ:
イニシエータを保留:Connection.js私はネットワークがChromeで呼び出しをチェックすると、私はOPTIONSメソッドは
方法「をキャンセルロード」として表示されていることがわかり:319
CORSフィルタを初めて設定したときも同様の問題がありました。私はブラウザのキャッシュをクリアすると、それは動作し始めた。今回はなぜ突然それが動作を停止したのか分かりません。ブラウザのキャッシュと履歴をクリアしても修正されません。
私はFirefoxでHTTPRequestorから正確に同じ呼び出しを行うとうまくいきます。ここでは、呼び出しです。私は機密理由のためにURLを隠しました。
OPTIONS http://myurl/rest/items?_dc=1358304888220&page=1&start=0&limit=25 HTTP/1.1
Access-Control-Request-Method: GET
Origin: http://localhost:8080
Access-Control-Request-Headers: accept, origin, x-requested-with
正確なリクエストで、HTTPRequestorから非常に良い応答が得られます。ここでの結果は次のとおりです。この呼び出しを行うためStoreで
OPTIONS http://myurl/rest/items?_dc=1358304888220&page=1&start=0&limit=25
Access-Control-Request-Headers: accept, origin, x-requested-with
Access-Control-Request-Method: GET
Origin: http://localhost:8080
-- response --
200 OK
Date: Wed, 16 Jan 2013 03:19:27 GMT
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: HEAD, GET, POST, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Origin, Accept, Content-Type
Content-Length: 0
Strict-Transport-Security: max-age=15768000, includeSubDomains
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
煎茶コード:
proxy: {
type: 'ajax',
method: 'GET',
url: 'http://myurl/rest/items',
withCredentials: true,
useDefaultXhrHeader: false,
disableCaching: false,
headers: {
"Accept": "application/json"
},
failure: function(response) {
if (response.timedout) {
Ext.Msg.alert('Timeout', "The server timed out :(");
} else if (response.aborted) {
Ext.Msg.alert('Aborted', "Looks like you aborted the request");
} else {
Ext.Msg.alert('Bad', "Something went wrong with your request");
}
},
success: function(response){
Ext.Msg.alert(response.responseText);
}
},
autoLoad: true,
私はこの問題を解決する方法を理解するのに役立ちます。
リクエストに使用しているJavaScriptコードを表示できますか?あなたは '.withCredentials = true;'を設定していますか? – monsur
@Monsur、私はこの呼び出しを行うために使用される賢者コードを追加しました。はいwithCredentialsはtrueです。このコードは昨日まで実際に働いていて、突然動いていませんでした。何がうまくいかなかったのか分かりません。私はサーバー側で何も変更を加えなかった。 –