URLにいくつかの引数を入力すると、「400OK」として有効な要求であるはずのエラーが表示されることがあります。
同じURLと引数は99%の確率で機能しますが、ログにエラーが表示されます。
それは、いくつかの要因が原因で発生する可能性のあるあいまいなことですか、それとも私のアプリに固有の何かが奇妙なヘッダーのミッシュマッシュを引き起こしているのですか?前者に答えがなければ、後者だと思います:)
アップデート
コメントについては、「it」は、作成された比較的単純なRESTfulAPIです。今では、ほとんどの場合、400とエラーの本体または200とOKの本体のような正しいヘッダーが返されます。不正なヘッダーがWebクライアントに到達すると、Webクライアントは取得したメッセージを含むレポートURLにpingを送信するため、Webアプリとモバイルアプリの間でAPIエラーを区別できます。私たちが知る限り、この「400OK」を地獄にするようなコードの組み合わせはありません。しかし、コードの混乱の外でそれが起こることは不可能に思えるので、私はより深く見ていきます。
更新2
さて、私は私が長い間持っていたよりも私たちのフレームワークを深く掘り下げて、何人かの開発者と話をしました。
APIへのAJAX呼び出しを介してブラウザに情報を返します。
ブラウザは「400OK」を検出してサーバーに送り返し、そこでこの奇妙なレポートを受け取ります。誰もこれが彼らの目で起こるのを見たことがありません、しかしログはそれが起こっていると言います。
HTTPヘッダーハンドラーの400は「400badrequest」のみであるため、コードベースには文字通り400OKを返すコードはありません。
私が遭遇したブラウザ/jquery/ajaxのバグがあるかどうか今疑問に思っています。
UPDATE 3(あまり多くの情報を得ることができないため)
ブラウザが何が悪いのかをどのように認識するかを確認しました。jQuery $ .ajaxによって報告されたように、失敗するとコールバックが発生します。次に、次のようなコードがあります。
xhr.always(function() {
var request = [ this.type, this.url, this.data ].join(' '),
response = [ xhr.status, xhr.statusText, xhr.responseText ].join(' ');
$.ajax({
url : REPORTING_URL,
type : 'POST',
data : { request : request, response : response }
});
});
そして、これらのajax呼び出しから「400エラー」応答も受け取ったため、これは「ほとんど」の場合に機能することがわかっています。
更新4
文字通りすべてのエラーがユーザーエージェントから来ていることに気づきました。
Mozilla webkit etc...... AdobeAIR/1.5.3
これは非常に古いバージョンです
私たちのAIRアプリには、Webアプリのiframeがあります。私はそこで何が起こっているのか想像することしかできません。