SenchaTouch2.1.0を使用しています。HTTPGET呼び出しを行っています。CORSリクエストです。したがって、期待どおりに飛行前のHTTPOPTIONSコマンドを送信しています。
サーバーにCORSフィルターをインストールして構成しました。私のコードからの呼び出しは昨日まで非常にうまくいっていました。今日突然、データの読み込みを停止しました。Chromeでネットワーク通話を確認すると、OPTIONSメソッドが「読み込みがキャンセルされました」と表示されます。
メソッド:OPTIONS
ステータステキスト:「ロードがキャンセルされました」
タイプ:保留中
イニシエーター:Connection.js: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からの非常に良い応答が得られます。結果は次のとおりです。
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
この呼び出しを行うためのストアのSenchaコード:
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,
この問題を解決する方法を理解するのを手伝ってください。