使用来自不同域的jquery ajax请求传递cookie

时间:2010-06-09 13:25:23

标签: asp.net jquery greasemonkey

我正在构建一个greasemonkey脚本,以便为我们的客户更轻松地发布到craigslist。

基本上流程就是这样:

  1. 用户登录我们的系统(使用asp.net建立身份验证cookie)
  2. 用户导航到我们网站上名为“CraigsList”的部分。如果他们安装了greasemonkey脚本,它会自动在新选项卡中打开craigslist。
  3. 然后,greasemonkey脚本会在http://mysite.com/services.asmx/GetListings向我们的网站发回请求,以检索要发布到craigslist的可用项目列表。
  4. 这是失败的原因,因为对http://mysite.com/services.asmx/GetListings的请求不包括任何身份验证Cookie。我不确定它是否包含cookie,因为请求来自craigslist.org而不是mysite.com或者是什么。我知道这是一个身份验证问题,因为在fiddler中查看它会返回302并重定向到登录页面。

    这是我的要求:

    $.ajax({
        url: "http://mysite.com/services.asmx/GetListings",
        dataType: "json",
        type: "post",
        error: function(request, status, error) {
            console.log("an error occurred getting the data");
        },
        success: function(data) {
            console.log("got the data!!!");
        }
    });
    

    任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

如果某个域有一种方法可以访问标记有不同域名的浏览器cookie,那将是一个巨大的安全问题。也许你的Greasemonkey脚本可以以某种方式将cookie从浏览器的大脑中取出,但是如果你通过将代码放到页面上来驱动东西,那么将会强制执行正常的安全规则。