我正在使用ESignature项目。我可以描述一下这个项目是:
用户从IE 11访问我的网页,上传文件(网络部署在网络服务器中) - >单击“签名”按钮 - > ... - >一个js函数signFile()将ajax调用到安装在客户端计算机中的插件(插件的URL:https://127.0.0.1:14415/) - >插件调用USB,可以签署文件并连接到客户端计算机(该插件是一个.NET应用程序,在客户端计算机上运行https://127.0.0.1:14415)。
问题是当我使用函数signFile()时,我无法从web调用ajax到插件。我认为它是同源政策,因为插件安装在客户端计算机中(与网络服务器的域不同)。
我尝试将此添加到web.config但它无法正常工作,仍被拒绝:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
这是signFile()函数:
function signFile(xmlData) {
var hSession = document.getElementById("lbhSession").value;
var text = xmlData;
var domain = "https://127.0.0.1:14415/";
var xmlhttp;
if (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) {
// Read Response
}
}
xmlhttp.open("POST", domain + "signXMLData", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("sessionID=" + hSession + "&xmlData=" + text + "&signType=0" + "&tagXMLData=*");
}
那么如何在这种情况下使用CORS。
我不知道哪个站点需要配置CORS(我的网站或插件)。我只需要从webserver(函数signFile)调用ajax到指定的插件(在客户端计算机中:{{ 3}}),而不是任何其他IP或站点。 我必须使用浏览器IE 11。
全力以赴。
很抱歉,如果我的问题有任何让你难以理解或类似的事情。