问题描述:
我正在开发一套网站的客户端系统。这个系统的登录通过ajax实现,在主窗体有个webBrowser显示网站后台管理的页面。
问题就出在主窗体的这个webBrowser,直接在webBrowser窗体访问都没问题。webBrowser显示的页面凡有window.open打开窗体的页面都没有身份拒绝访问。出现一个JS脚本错误。
我怀疑是cookie丢失,向各位高手请教。
补充:就是当我在webBrowser直接显示的页面cookie是有的,当我在webBrowser中打开新窗体的时候,就打不开了,提示一个JS脚本错误,错误代码:拒绝访问。

解决方案 »

  1.   

    使用window.open打开的网页,也在使用webBrowser显示吗?
      

  2.   

    webBrowser嵌入网页,网页里面有widow.open脚本
      

  3.   

    使用window.open打开的网页,如果是使用使用WebBrowser显示,应该可以处理,如果你使用IE打开,那就比较麻烦
      

  4.   

    你最好把Web这边的代码帖出来,这样说很难猜的,脚本错误不一定和cookie丢失有关
      

  5.   

    错误提示图片:
    http://img.photo.163.com/4UZniC_rms-OgIFVtjvpLw==/1977643186369129056.jpg
    http://img.photo.163.com/YjGS97Bf9AAUWTlwkbQwlA==/2100929226168403364.jpg
      

  6.   

    这个是比较清晰错误信息图片地址
    http://sz3.photo.store.qq.com/http_imgload.cgi?/rurl2=d44cbb467c0c789c079198dd0f19db6ee592cc9df913752837ead751a6cd06fb593c52c8bab4ba8bc6f501f7de723ccd5f73ad04a9f2083b68438d771ce79ed58bd6d79dfa273a23b614f1ef881937c129732857
    http://sz1.photo.store.qq.com/http_imgload.cgi?/rurl2=05367d77e4ad69688d571c2b5fe8a0c82b314da89431693a5ae01d1f953f73e84c4d028bf3d93c48d23f30e656bbd30d82b29e5a269906dcd5026d7e591bac77752937db608e5b2592c12825a51306aaa09f433b
      

  7.   

    现在出现这个错误了,麻烦各位了~~!
    http://sz2.photo.store.qq.com/http_imgload.cgi?/rurl2=c8757f6827e6ef80491a201531d1b03a69c6e2b93f70113c6dea296ec89f35a4a23660aa53223f20f1c7b5dac7cabb27a135a516ac50fe48602cc29cd0aafafb547ba3dd7eaf884d9cac77089406fa94c05aafea
      

  8.   

    嗯,9楼的图片,应该是Session或者Cookie的问题了
      

  9.   

    我前面的登录模块是通过ajax去实现的,在webBrowser里面显示的页面都有权限的。我把登录模块的实现代码贴出来
     //先新建一XHR对象
            function createXMLHttpRequest() 
            {
                //如果是IE,用activexobject
                if (window.ActiveXObject) 
                {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }            //如果其它浏览器就用XMLHttpRequest
                else if (window.XMLHttpRequest) 
                {
                    xmlHttp = new XMLHttpRequest();
                }
            }        //开始函数        function startRequest() 
            {
                document.getElementById("revice").innerHTML="数据验证中,请等待。";
                if(!CheckText())
        {
        return false;
        }
                
                var name,pwd;
                name=document.getElementById("name").value;
                pwd=document.getElementById("pwd").value;
                createXMLHttpRequest();
                //指定当readyState属性改变时执行的函数
                xmlHttp.onreadystatechange = handleStateChange;
                  //alert("http://192.168.1.9:33/Company/LoginData.aspx?UserName="+name+"&Password="+pwd+"");
                xmlHttp.open("GET", "http://www.ywzsw.com/Company/my/LoginData.aspx?UserName="+name+"&Password="+pwd+"", true);
                //alert("http://192.168.1.9:33/Company/Data/LoginData.aspx?UserName="+name+"&Password="+pwd+"");
                //发送请求到http服务器并接收回应
                xmlHttp.send(null);
            }        function handleStateChange() 
            {
               //4数据接收完毕
                if(xmlHttp.readyState == 4) 
                {
                //200返回请求状态为OK
                    if(xmlHttp.status == 200) 
                    {
                       var rsText=xmlHttp.responseText;
                       //alert(rsText);
                       if(rsText.indexOf('true')!=-1)
                       {
                             arr=rsText.split('|');
                             if(arr[0]=='true')
                             {
                                 arr[1];   
                                 window.external.SetID(arr[1]);
                                 window.external.ShowMainForm();
                             }
                             else
                             {
                                 document.getElementById("revice").innerHTML='登录失败!!!';
                             }
                       }
                       else
                          {
                         document.getElementById("revice").innerHTML=rsText;
                       }
                    }
                }
                document.getElementById("revice").innerHTML="数据验证中,请等待。";
                
            }
    各位高手帮我解决下这个问题哦。。
      

  10.   

    服务器上处理登录的页面里面给cookie的.
      

  11.   

    .NET带的WebBrowser没有NewWindow3事件,不能获取弹出窗口的URL,所以要使用AxSHDocVw.AxWebBrowser控件        private void axWebBrowser1_NewWindow3(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow3Event e)
            {
                e.cancel = true;    // 取消打开,使用Form2的axWebBrowser控件打开弹出窗口            Form2 frm = new Form2();
                object url = e.bstrUrl;     //获得弹出窗口的URL            frm.axWebBrowser1.RegisterAsBrowser = true;
                e.ppDisp = frm.axWebBrowser1.Application;
                frm.axWebBrowser1.Navigate2(ref url);            frm.Show(); 
            }