防止在AJAX请求上发送Cookie

Sim*_*mon 35 ajax jquery

我有一个我从脚本调用的Web服务,但不需要存储在cookie中的任何信息.无论何时我向服务发出请求,cookie都会随之发送.我知道默认情况下,cookie是通过HTTP请求发送的,但有没有办法覆盖该行为而不发送cookie?

简而言之,我发出这样的请求:

$.ajax({
    type: "POST",
    cache: false,
    url: url,
    data: data,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) { successFunc(response); },
    error: function(xhr) { errorFunc(xhr); }
});
Run Code Online (Sandbox Code Playgroud)

Oss*_*eta 18

将AJAX请求发送到服务器上的无cookie子域.因此,您的应用程序是www.mydomain.com,并且api.mydomain.com提供了ajax请求,您从未设置过cookie.使用图像等静态文件也是一个好主意...

请参阅http://developer.yahoo.com/performance/rules.html的"使用Cookie的免费域名"部分


des*_*pot 8

另一种方法是之前做$阿贾克斯:
1.从浏览器的cookie的使用JavaScript(它们保存在一个全局变量)域
2.用JavaScript从浏览器中删除您的域名的cookies
3.做$ .ajax调用
4.将cookie(来自全局变量)放回浏览器中.

如果您根本不需要域中的cookie,只需删除它们(因此请跳过1.和4.).

  • 几乎完美......因为没有办法恢复饼干的生存量. (2认同)

Whi*_*rot 0

您说浏览器随 HTTP 请求发送匹配的(路径 + 域 + 会话)cookie 是正确的。这对于 cookie 机制的工作至关重要。

你就不能简单地不读取cookie吗?

此外,当最初设置cookie时,您可以设置哪些目录(及其子目录)可以访问cookie。

例如,如果您将 cookie 设置为仅在 /foo/bar/ 中读取,则位于 /whatever/ajaxHandler.php 中的文件将无法看到这些 cookie。

看看这个: http: //us.php.net/setcookie

虽然我不确定您是否使用 PHP,但这对您来说可能是一个很好的起点。

  • 忽略cookie并不能解决它消耗带宽的问题 (5认同)