Chrome、FF、および Safari では正常に動作する ajax 呼び出しがありますが、IE では常に失敗します (「成功したがデータがありません」)。サーバー ログを確認したところ、正しい応答が常にトリガーされますが、それでも IE は空の応答を示し、正しい 302 http ステータス コードをキャッチしません。私は多くの組み合わせを試してみましたが、 contentType: "text/html; charset=utf-8" を使用すると IE は応答を取得しますが、POST の送信は contentType: "application/x -www-form-urlencoded; charset=utf-8"
これは私のJavaScriptです:
function someFunc() {
$.ajax({
cache: false,
async: false,
type: 'POST',
dataType: 'html',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
//contentType: "text/html; charset=utf-8",
url: myProtocol + myHost + "/mypage.php",
data: {action: "someAction"},
success: function( data ) {
if (data == ""){
alert("success but no data");
return;
}
// do something...
return;
},
error: function( data ) {
if (data.status == "302"){
// do something...
return;
} else {
// do something...
return;
}
}
});
return;
}
これは私の PHP 応答 (mypage.php) です。
$loginUrl = "someUrl";
header("HTTP/1.1 302 Found");
header("Content-Type: text/html; charset=utf-8");
Header("Content-Length: " . mb_strlen($loginUrl, "8bit"));
header("Connection: close", true);
echo $loginUrl;
IE 7-9 でのみ、他のブラウザーで「成功したがデータがありません」という結果になり、完全に機能します。何か案が?誰か?
ありがとう!