SCRIPT5022:无效访问错误xmlhttprequest

SCRIPT5022: InvalidAccessError xmlhttprequest

本文关键字:错误 xmlhttprequest 访问 无效 SCRIPT5022      更新时间:2023-09-26

当我尝试发送GET时,我的javaScript有问题。使用xmlhttprequest,我无法到达web服务,但我可以使用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是响应报头,而不是请求报头。

您必须配置您正在发出请求的系统,以允许您发出跨域请求。