Javascript安全阻止了我

Javascript security stopping me?

本文关键字:安全 Javascript      更新时间:2023-09-26

我很确定这是一个安全问题,使我不能这样做,但我想知道是否有一个变通办法,我不知道…

我有一个脚本注入用户的电子邮件到我的客户端的联系数据库,它在IE轰炸,但在FF, Chrome工作(像往常一样)。只是想知道我是否可以将服务器添加到信任或其他东西使其工作?

<script type="text/javascript">
    window.onload = init;
    //Global XMLHTTP Request object
    var XmlHttp;
    function CreateXmlHttp() {
        //Creating object of XMLHTTP in IE
        try {
            XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (ex) {
                XmlHttp = null;
            }
        }
        //Creating object of XMLHTTP in Mozilla and Safari
        if (!XmlHttp && typeof XMLHttpRequest != "undefined") {
            XmlHttp = new XMLHttpRequest();
        }
    }
    function init() {
        var x = document.getElementsByName("btnContinue");
        x[0].onclick = submitForm;
    }
    function submitForm() {
        var x = document.getElementsByName('Email');
        if (x[0].value.length > 0) {
            CreateXmlHttp();
            XmlHttp.open("POST", "https://app.icontact.com/icp/signup.php", false);
            XmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            XmlHttp.send("redirect='http://www.xyz.com/articles.asp?ID=97'&errorredirect='http://www.xyz.com/articles.asp?ID=256'&fields_email=" +
                x[0].value + "&listid=123&specialid:123=YP7I&clientid=123&formid=123&reallistid=1&doubleopt=0&Submit=Submit");
        }
    }
</script>

我很感激你的建议。

谢谢!

我的第一个建议是尝试在 ActiveX对象之前创建XMLHttpRequest 。IE7及以上版本不像其他浏览器那样支持AJAX。

接下来,您应该在open()方法中使用相对路径。虽然我认为从你的问题来看,它需要能够在任何网站上运行?在这种情况下,我建议创建一个表单和iframe,并使用"old"方法。

这是同源策略问题。允许访问内容头可以设置,但IE ActiveXObject不会使用它们。xmlhttprequest服从报头,并将在支持它们的浏览器上工作。

看这个问题:在IE上拒绝AJAX权限?

虽然看起来他们没有找到一个解决方案来兼容IE跨域POST…

如果你可以通过你的web服务器代理它(发一个POST到你的服务器),让服务器发POST,你的问题就解决了。

在新的浏览器上,如果可以在请求的页面上使用特殊的HTTP标头,则可以使用跨域XHR。http://ejohn.org/blog/cross-site-xmlhttprequest/