IEでajaxリクエストをサポートするために、jQuery.XDomainRequest.js(https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest)を使用しています。
GETリクエストには最適ですが、POSTが機能せず、500が返されます(他のブラウザでも機能するため、XDR固有の問題です)。
私のajax呼び出しは次のようになります:
var contact = {};
contact.firstName = "ABC";
jQuery.ajax({
type: 'POST',
url: contactDetailsUrl,
data: contact,
dataType: 'json',
success: function(data) {
callback(true);
},
error: function(data) {
alert('Currently having trouble posting.');
callback(false);
}
});
これはXDomainRequestとの最初の出会いであり、私は自分でいくつかの調査を行いましたが、なぜこれが失敗するのかわかりません。
よろしくお願いします!!!
編集:私はいくつかのデバッグを行いました。
私のテストURL="http:/myserver/test/index.php?key=123"(これはクロスドメインリクエストを作成します)
json_encode($ _ GET)を出力すると、次のようになります:{"key": "123"} json_encodee($ _ POST)を出力すると、次のようになります:[]。
明らかに私の投稿データは送信されていません。
これは私のデータを送信する行です:
xdr.send(postData);
postDataは次のようになります。
"firstName=ABC"
phpコードの私のヘッダーは次のようになります:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type');