使用script-tag设置远程cookie?

时间:2012-02-10 14:50:00

标签: html asp.net forms cookies

情景:

  1. 用户访问http://some-site.test/form.html。该页面包含一个表单:

    <form action="http://example.com/search" method="post">
    ...
    
  2. 用户填写并提交表单。

  3. 操作http://example.com/search执行搜索并显示结果,但如果Cookie已与表单数据一起发送:

    ASP.NET_SessionId=...
    

    换句话说:需要使用example.com建立会话,否则搜索将无效。我不知道为什么会这样,我现在必须联系负责搜索的人。

  4. 作为解决方法,我在form.html中添加了一个脚本标记:

    <script src="http://example.com"></script>
    

    令人惊讶的是,这有效:设置了Cookie ASP.NET_SessionId。但是,这是一个丑陋的解决方案,因为脚本标记会导致加载完整的HTML页面,并且后果是不确定的。在Chrome中,后果是控制台中显示错误消息:

     Uncaught SyntaxError: Unexpected token <
    

    我的问题:

      

    在提交表单之前是否有更好的解决方案来设置cookie?

    到目前为止我还有什么考虑:

    • 隐藏iframe src="http://example.com"。缺点:

      • 有必要检测何时加载http://example.com后面的页面,然后才能使表单可见。但是,据我所知,iframe没有正式(W3C)支持onload属性。尽管该属性在许多浏览器中仍然有效,但我已经读过它在IE&lt; = 8中不起作用。对于相关的load-event也是如此。

      • 不仅仅会加载HTML,即CSS,图像等。这是浪费带宽,事实上已经加载HTML是不必要的。只需要设置cookie。

    • 隐藏img src="http://example.com"。缺点:img不会触发HTML内容的加载事件,至少在Chrome中是这样。

0 个答案:

没有答案