【问题标题】:How can I use Internet Explorer's Cookies in my ActiveX control?如何在我的 ActiveX 控件中使用 Internet Explorer 的 Cookie?
【发布时间】:2011-06-28 02:24:12
【问题描述】:

MSXML2.XMLHTTP.3.0 对象如何连接到同一个会话?我希望我自己的 ActiveX 控件表现出这种行为。

index.php:(与服务器端语言无关):

<?php session_start(); session_write_close(); ?>
<html>
<head>
<title>Disp Test</title>
<script type="text/javascript">
window.onload = function()
{
    var divJS;
    var objXHR;

    divJS = document.getElementById('js');

    objXHR = new ActiveXObject("MSXML2.XMLHTTP.3.0");
    objXHR.open("GET", "ajax.php", false);
    objXHR.send();
    divJS.innerHTML = objXHR.responseText;
}
</script>
</head>
<body>
<p>Your session ID: <?php echo session_id(); ?></p>

<div id="js">
Please enable Javascript.
</div>

</body>
</html>

ajax.php:

<?php session_start(); session_write_close();?>
Your session ID from AJAX: <?php echo session_id(); ?>

结果:

Your session ID: d2ljvbjllsdlc51rsq5naiffc2

Your session ID from AJAX: d2ljvbjllsdlc51rsq5naiffc2

【问题讨论】:

    标签: internet-explorer activex xmlhttprequest


    【解决方案1】:

    也许 XMLHTTP 对象是一个共享 cookie 的单身人士。我实现了自己的 ActiveX,它只是创建了一个 XMLHTTP 对象,当我替换示例中的 objXHR(下面的伪代码)时,它正常工作

    IXMLHTTPRequest* pX;
    hr = CoCreateInstance(CLSID_XMLHTTP, NULL, CLSCTX_INPROC_SERVER, IID_IXMLHTTPRequest, (void**)&pX);
    if(SUCCEEDED(hr))
    {
        hr = pX->open("GET", "ajax.php", false);
        if(SUCCEEDED(hr))
        {
            hr = pX->send();
            if(SUCCEEDED(hr))
            {
                VariantInit(pVarResult);
                V_VT(pVarResult) = VT_BSTR;
                hr = pX->get_responseText(&V_BSTR(pVarResult));
                if(!SUCCEEDED(hr))
                {
                    VariantClear(pVarResult);
                }
            }
        }
    
        pX->Release();
    }
    
    return S_OK;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多