【问题标题】:Setting cookies manually with jquery使用 jquery 手动设置 cookie
【发布时间】:2016-01-29 09:15:19
【问题描述】:

我使用 jquery 的 ajax 方法将 POST 命令发送到另一台服务器。我在我的 Firefox 中设置了 CorsE 插件,我可以发送 POST 命令,并且它成功返回。但是,我尝试使用用户名和密码登录,一切正常,除了我使用 ajax 方法发送的 cookie 值不是浏览器设置使用的值。

其中一个参数是“headers”,我用我想要的值设置cookie,即“valueA=bla; valueB=bla2”,但是当我从inspect元素检查网络选项卡时,我看到firefox发送带有另一个 cookie 的 POST,即“valueA=tal; valueB=tal2”(我编的)。

如何强制 firefox 使用我最初设置的值?

我的 ajax 调用是:

$.ajax({
        url: url,
        type: "POST",
        data: {
            "email": email,
            "pass": pass
        },
        headers: {
            "Host": "www.someexample.com",
            "User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",
            "Accept-Language": "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3",
            "DNT": "1",
            "Connection": "keep-alive",
            "Content-Length": 47,
            "Accept": "application/json, text/javascript, */*; q=0.01",
            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
            "X-Requested-With": "XMLHttpRequest",
            "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36",
            "Content-Type": "application/x-www-form-urlencoded",
            "Referer": url,
            "Accept-Encoding": "gzip, deflate",
            "Accept-Language": "pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4",
            "Cookie": "PHPSESSID=abcdefgh; SERVERID=ookkuu;"
        },
        xhrFields: {
            withCredentials: true
        },
        success: function (data) {
            console.log(data);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            console.log("Status: " + textStatus);
            console.log("Error: " + errorThrown);
        }

发送后,PHPSESSID 和 SERVERID 的值与之前设置的值不同。我想强制 Firefox 发送相同的值。

【问题讨论】:

标签: jquery ajax http post cookies


【解决方案1】:

它将始终发送document.cookies 中的cookie。如果要覆盖它们,请更改该变量而不是尝试使用自定义标头。如果您希望它仅用于那一次调用,请保存旧值,分配所需的新 cookie,发送 AJAX 请求,然后恢复旧值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多