次のコードを使用して、xDomain Request を使用して IE でクロス ドメイン jquery ajax リクエストを作成しました。
var xdr;
var URL=parentDomain+"/chat/getmessagesservlet";
if (jQuery.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("POST", URL + '?to='+chatboxtitle+'&yourName='+myName+'&chatBoxIndex='+tabIncr);
xdr.onload = function () {
var dom = new ActiveXObject("Microsoft.XMLDOM");
dom.async = false;
JSON = $.parseJSON(xdr.responseText);
if (JSON == null || typeof (JSON) == 'undefined') {
JSON = $.parseJSON(data.firstChild.textContent);
}
processData(JSON); // internal function
};
xdr.onerror = function() {
_result = false;
};
xdr.send();
} else {
$.ajax({
type: 'POST',
url: URL,
processData: true,
data: {'to':chatboxtitle,'yourName':myName,'chatBoxIndex':tabIncr},
dataType: "json",
async: false,
success: function (data) {
processData(data);
}
});
}'
また、次のようにサーバー側でヘッダーを設定します。
response.setHeader("Access-Control-Allow-Origin","*");
response.setHeader("Content-Type","text/plain");
response.setHeader("Access-Control-Allow-Methods"," GET, POST");
response.setHeader("Access-Control-Allow-Headers", "Content-Type");
しかし、IE8 & IE9 では動作しません。ResponseText は null を返すか、空です。私はjQueryを使用していることを見てきました
.ajaxTransport( dataType, handler(options, originalOptions, jqXHR)
また
.ajaxPrefilter( [dataTypes ], handler(options, originalOptions, jqXHR) )
クロス ドメイン リクエストを作成することは可能ですが、コードでこれを使用する方法がわかりません。options と originalOptions パラメータで渡される値は何ですか? この問題を解決するためのガイダンスを教えてください。