ASP.NET で動作している単純な Ajax 呼び出しを実行していますが、onreadystatechange 関数内にブレークポイントを配置すると、奇妙な DOM 例外で失敗します。たとえば、Google Chrome で xmlhttp 変数を調べたときに、PHP が失敗しているために ASP.NET が行っている余分なヘッダー マジックとは何ですか。
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//Here is where you unwrap the data
var arr = UnWrapVars(xmlhttp.responseText);
if (callBackFunc) {
callBackFunc(arr);
}
}
};
xmlhttp.open("POST", ajaxURL, true);
if (navigator.userAgent.toLowerCase().indexOf('msie') == -1) {
xmlhttp.overrideMimeType("application/octet-stream");
}
xmlhttp.send("[FunctionName]" + functionName + "[/FunctionName][CanvasID]" + canvasid + "[/CanvasID][WindowID]" + windowid.toString() + "[/WindowID][Vars]" + getEncodedVariables() + "[/Vars]");
Ajax ページからの受信データは次のようになります: [root][Vars][windows]
< ではなく [ を意図的に実行しているので、それを指摘しないでください。また、ASP.NET ページからは機能しますが、PHP ページからは機能しません。返されるデータは、サーバー側で確認したものと同じです。では、ASP.NET が PHP が行っていないことを行っている場合、不足しているヘッダー マジックは何でしょうか。