크로스 도메인 교차 브라우저 .js 요청 (libs없이)을 만들려고합니다.Mozilla 및 Chrome에서 XMLHttpRequest 상태 0 오류
var isIE8 = window.XDomainRequest ? true : false;
var invocation = createCrossDomainRequest();
var url = 'http://someserver.com/cgi-bin/targets.cgi?sid=';
function createCrossDomainRequest(url, handler)
{
var request;
if (isIE8)
{
request = new window.XDomainRequest();
}
else
{
request = new XMLHttpRequest();
}
return request;
}
function sendTarget(sid,target)
{
if (invocation)
{
var phone_id = getCookie('phone_cookie');
url = url + sid +'&target='+target+'&phone_id='+phone_id+'&url='+encodeURIComponent(document.URL);
if(isIE8)
{
invocation.onload = outputResult;
invocation.open("GET", url, true);
invocation.send();
}
else
{
invocation.open('GET', url, true);
invocation.onreadystatechange = handler;
invocation.send();
}
}
else
{
var text = "No Invocation TookPlace At All";
}
}
function handler(evtXHR)
{
if (invocation.readyState == 4)
{
if (invocation.status == 200)
{
outputResult();
}
else
{
var text = "Invocation Errors Occured";
}
}
}
function outputResult()
{
var response = invocation.responseText;
}
그것은 모질라와 크롬 IE에서 작동하지만하지. 이러한 브라우저에서 "호출 오류가 발생했습니다"라는 오류가 발생합니다. invocation.status가 0입니다. 액세스 제어 허용 - 원본을 *로 설정하십시오.
이 문제를 해결하려면 어떻게해야합니까?
모든 라이브러리를 사용할 수 없으며 JS (기술 문제) 만 해결할 수 있습니다. 아니 JQuery! 이 코드는 여러 클라이언트 웹 사이트 (하나 또는 두 개가 아님)에 있어야합니다. 응답을받을 필요가 없습니다. 요청을 보내면됩니다. 그리고 XMLHttpRequest에 반복되지 않습니다 - 어떤 아이디어?
설정 한 URL에 대한 코드가 작동합니다. 내 응용 프로그램에서 다른 크로스 도메인 URL을 시도 할 때 다시 상태 0을 제공합니다. 제안하십시오. –
"코드가 작동 중"입니다 - "작동하지 않는다"고 말씀하셨습니까? 나는 테스트를했고 아직도 나를 위해 일합니다. 문제가있는 경우 자세한 정보를 제공해주십시오. – leggetter
귀하의 URL로 작업 중입니다. 내가 그것을 내 URL로 대체 할 때 크롬과 파이어 폭스에서 0으로 다시 상태를 부여합니다. –