SCRIPT5022:无效的访问错误 xmlhttprequest

SCRIPT5022: InvalidAccessError xmlhttprequest

我在尝试发送 GET 时遇到了 javaScript 问题。使用 xmlhttprequest 我无法访问 WebServices,但可以使用 Soap UI 访问它。

IE11调试模式错误代码为:

SCRIPT5022: InvalidAccessError

代码如下:

var xmlToSend = "<?xml version='1.0' encoding='utf-8'?>";
xmlToSend += "<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' xmlns:ws='some xmlns'>";
xmlToSend += "<soap:Header/> ";
xmlToSend += "<soap:Body>";
xmlToSend += "<ws:searchMultisPolicy>";
xmlToSend += "<ws:xmlRequest>";
xmlToSend += "<![CDATA[";
xmlToSend += "<searchMultisPolicyReq>";
xmlToSend += "<wsHeader>";
xmlToSend += "<user>B12345674280010001</user>";
xmlToSend += "<logginDate>27/04/2015</logginDate>";
xmlToSend += "<roles>170</roles>";
xmlToSend += "</wsHeader>";
xmlToSend += "<params>";
xmlToSend += "<idProveedor>02</idProveedor>";
xmlToSend += "<nifTomador>12341234D</nifTomador>";
xmlToSend += "<fechaOcurrencia>2015-04-27T10:00:00</fechaOcurrencia>";
xmlToSend += "<poliza>80208813</poliza>";
xmlToSend += "<razonSocial></razonSocial>";
xmlToSend += "</params>";
xmlToSend += "</searchMultisPolicyReq>";
xmlToSend += "]]>";
xmlToSend += "</ws:xmlRequest>";
xmlToSend += "</ws:searchMultisPolicy>";
xmlToSend += "</soap:Body>";
xmlToSend += "</soap:Envelope>";

var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.loadXML(xmlToSend);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = state_Change;
xmlhttp.open(
                "POST",
                "some WebService",
                0, "user", "pwd");
xmlhttp.setRequestHeader('Access-Control-Allow-Origin', '*');
xmlhttp.setRequestHeader("action", "urn:searchMultisPolicy");
xmlhttp.setRequestHeader("Content-Type", "application/soap+xml");
xmlhttp.setRequestHeader("charset", "UTF-8");
xmlhttp.setRequestHeader("Accept-Encoding", "application/soap+xml");
xmlhttp.send(xmldoc);

function state_Change() {
    if (xmlhttp.readyState == 4) {
        // if "OK"
        if (xmlhttp.status == 200) {
            alert("OK");
            var objResponse = document.getElementById("responseDiv");
            objResponse.innerText = xmlhttp.responseXML.xml;
        } else {
            alert("Problema recibiendo XML"+" "+xmlhttp.status);
        }
    }
}   

Access-Control-Allow-Origin 是 响应 header,而不是请求 header。

您必须配置发出请求的系统以允许您发出跨源请求。