代码之家  ›  专栏  ›  技术社区  ›  mikemanne

JSONP和从一个服务器到另一个服务器共享cookies?

  •  1
  • mikemanne  · 技术社区  · 14 年前

    我正在开发一个内部网系统(.NET3.5);主页由标准的ASP.NET服务器提供。我想在这些页面上使用Ajax来联系运行在不同机器上的WCF服务,检索数据,执行CRUD操作——通常的Ajax内容。

    我试图解决的问题是:我是否可以获取由ASP.NET服务器设置的cookie,并将它们包含在对WCF服务的请求中?如果是,怎么做?

    我的理解是,JSONP绕过XSS限制,将Ajax请求“包装”到一个标准<script src=“MyAjaxCall?SomeData=SomeValue”>标签。考虑到这一点,我似乎任由浏览器决定MyAjaxCall中包含哪些cookie(如果有的话)。由于cookie来自ASP.NET服务器,因此浏览器可能不会在对WCF的调用中包含它们。

    编辑 :接受Julian的回答,因为使用JS手动获取cookie的负载并将其塞入URL似乎是绕过限制的唯一方法(尽管感觉有些不雅:)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Julian Aubourg    14 年前

    唯一的解决方法是将感兴趣的值实际传递到JSONP请求的查询字符串中。这意味着您必须在客户端检查cookies,从中提取所需的数据,然后“手动”将其附加到url。