내 웹 사이트의 다른 페이지에 정보를 게시하려고 할 때 "Origin http://localhost:7230
이 Access에서 발견되지 않습니다."라는 IE에 문제가 있습니다 (Chrome은 잘 작동합니다) -Control-Allow-Origin 헤더 ". 나는 이것이 CORS와 어떤 식 으로든 관련이 있다는 것을 이해하지만, 나는 나의 영역 밖에는 가지 않을 것이다. 요청을 보냅니다IE XdomainRequest CORS 문제
페이지는 다음과 같습니다 http://localhost:7230/TestPage.aspx
내가 페이지에 게시 http://localhost:7230/ActionHandler.aspx
코드에 게시하려고 페이지 :
function RequestData()
{
//If we have no data don't request anything, just reset the timer
if (dataStore.topReadings.length == 0 && dataStore.specifiedRanges.length == 0 && dataStore.entireRanges.length == 0 && dataStore.periodRanges.length == 0)
{
setInterval(RequestData, options.interval);
}
var params = "?Action=GET_DATA";
var body = GetRequestXML();
var xmlhttp;
if (window.XDomainRequest) // code for IE8 and IE9
{
xmlhttp = new XDomainRequest();
if (xmlhttp)
{
xmlhttp.onerror = function()
{
alert("[Data Config]Failed to send request for configuration!\n" + xmlhttp.responseText);
};
xmlhttp.ontimeout = function()
{
alert('xdr ontimeout');
};
xmlhttp.onprogress = function()
{
};
xmlhttp.onload = function()
{
if (xmlhttp.responseText)
{
HandleResponseData($($.parseXML(xmlhttp.responseText)));
}
};
} else
{
alert('failed to create xdr');
}
}
else
{
if (window.XMLHttpRequest) // code for IE7, Firefox, Chrome, Opera, Safari
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
alert("[Data Request]Failed to create XMLHTTPRequest!\n" + e.message);
}
}
else // code for IE6, IE5
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
//alert("Handled!");
HandleResponseData($($.parseXML(xmlhttp.responseText)));
that.trigger("dataReceived");
}
}
}
try
{
xmlhttp.timeout = options.timeout;
xmlhttp.open("POST", "http://localhost:7230/ActionHandler.aspx" + params, true);
}
catch (e)
{
alert("[Data Request]Failed to open XMLHTTPRequest!\n" + e.message);
}
setTimeout(function() { xmlhttp.send(body); }, 0);
}
이는 ASP입니다. Visual Studio에서 실행되는 NET 웹 사이트. 난 here 단계를 수행하고 web.config 파일에 관련 행을 추가했습니다. ActionHandler 페이지를 통해 내 요청을받는 방법에 대한 도움을 주시면 감사하겠습니다.
Fiddler 또는 F12의 Network 탭을 사용하여 네트워크 트래픽을 보았을 때 POST가 전송되고 응답에'Access-Control-Allow-Origin' 헤더가 있습니까? – EricLaw
XDomainRequest를 사용하면 교차 도메인으로 이동하지 않는 것이 좋습니다. 해당 개체는 사용자가 InPrivate 모드에서 실행중인 경우 IE8에서 완전히 실패하는 등 몇 가지 버그가 있습니다. 결국 크로스 도메인으로 이동해야하는 경우 여기의 코드는 IE10의 CORS-XHR보다 XDomainRequest를 선호합니다. 아마 안된다. – EricLaw
정보 주셔서 감사합니다 Eric. 응답에는'Access-Control-Allow-Origin' 헤더가 있습니다. 나는 좌절감을 느끼고'$ .ajax()'호출을 시도했는데 그것은 작동한다. 내 문제는 XDR을 사용하여 제안한 것임을 알 수 있습니다. –