设置请求头 +曲奇饼

发布于 2024-09-10 14:48:14 字数 706 浏览 8 评论 0原文

我的问题是,如何使用 setRequestHeader 发送 cookie。我测试它的代码是这样的:

var client = new XMLHttpRequest();
client.open('POST', 'url');
client.setRequestHeader('Cookie', 'test=mycookie');
client.setRequestHeader('Cookie', 'test=mycookie');
 alert("start");
 client.onreadystatechange = function() {
  if(client.readyState == 4 && client.status == 200){
   alert("beginning");
   alert(client.getAllResponseHeaders()); 
   document.getElementById('test').innerHTML = client.responseText;
   alert("end");
  }
 }
 client.send();

getAllResponseHeaders() 方法仅给出 caontent 类型。但我如何才能知道 cookie 是否已设置呢?

所以它一定是javascript,而document.cookie是不可能的,因为我是为诺基亚WRT开发的,但它不使用这个。

感谢您的帮助

my question is, how to send a cookie with setRequestHeader. My code to test it is this one:

var client = new XMLHttpRequest();
client.open('POST', 'url');
client.setRequestHeader('Cookie', 'test=mycookie');
client.setRequestHeader('Cookie', 'test=mycookie');
 alert("start");
 client.onreadystatechange = function() {
  if(client.readyState == 4 && client.status == 200){
   alert("beginning");
   alert(client.getAllResponseHeaders()); 
   document.getElementById('test').innerHTML = client.responseText;
   alert("end");
  }
 }
 client.send();

The getAllResponseHeaders()-method gives only caontent-type. But how I can see if the cookie is set or not?

So it must be javascript and document.cookie is no way, because i develope for the Nokia WRT and it doesn't use this.

Thanx for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苦行僧 2024-09-17 14:48:14

XMLHttpRequest 的设计初衷并不是满足您的要求。正如您正确地指出 document.cookie 是在 javascript 中设置 cookie 的常用方法一样,通过这样的 AJAX 请求 cookie 并没有真正的意义。

如果您无法使用 document.cookie,则将您的 cookie 参数作为发布数据传递,并让您的服务器端处理程序在响应中设置 cookie。

例如,如果您的服务器端处理程序是 Java servlet:

Cookie myCookie = new Cookie("Name", "Value");
HttpServletResponse res = getContext().getResponse().addCookie(myCookie);

XMLHttpRequest wasn't designed to be able to do what your asking it to do. As you rightly point out document.cookie is the usual way to set cookies in javascript, it doesn't really make sense to request a cookie via AJAX like this.

If you can't use document.cookie then pass your cookie parameters as post data and have your server side handler set the cookie in the response.

For example if your server side handler was a Java servlet:

Cookie myCookie = new Cookie("Name", "Value");
HttpServletResponse res = getContext().getResponse().addCookie(myCookie);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文