当前位置:  开发笔记 > 编程语言 > 正文

如何在JavaScript中使用XMLHttpRequest设置Cookie(标题)?

如何解决《如何在JavaScript中使用XMLHttpRequest设置Cookie(标题)?》经验,为你挑选了2个好方法。

我正在尝试使用XMLHttpRequest在XSS请求中设置Cookie.

我找到了XMLHttpRequest规范,4.6.2-5节似乎确实建议不允许设置Cookie,Cookie2和其他一些标题,但我希望有一个解决方法.

我的(jQuery)代码如下所示,但由于未设置cookie,因此生成的查询失败.

$.ajax( {
  type : "POST",
  url : URL,
  data: SOAP_INBOX_MAIL_QUERY,
  dataType : "xml",
  async: false,
  beforeSend : function(xhr) {  
    var cookie = credentials["COOKIE"];
    console.info( "adding cookie: "+ cookie );          
    xhr.setRequestHeader('Cookie', cookie);
  },
  success : function(data, textStatus, xmLHttpRequest){


  },
  error : function(xhr, ajaxOptions, thrownError) {
    credentials = null;
  }
});

小智.. 36

这可以做到.$ .ajax调用中需要以下内容:

xhrFields: {
    withCredentials: true
}

(请参阅jQuery文档),您还需要提供支持CORS的请求的站点(它们至少需要允许您来源并且还要设置Access-Control-Allow-CredentialsHTTP头true).

毫无疑问它有效.您可以通过HTTPS,使用Basic Auth等来执行此操作.如果您告诉它(xhrFields)并且站点提供正确的CORS标头,jQuery将发送所有内容(auth标头,cookie).不要放弃!



1> 小智..:

这可以做到.$ .ajax调用中需要以下内容:

xhrFields: {
    withCredentials: true
}

(请参阅jQuery文档),您还需要提供支持CORS的请求的站点(它们至少需要允许您来源并且还要设置Access-Control-Allow-CredentialsHTTP头true).

毫无疑问它有效.您可以通过HTTPS,使用Basic Auth等来执行此操作.如果您告诉它(xhrFields)并且站点提供正确的CORS标头,jQuery将发送所有内容(auth标头,cookie).不要放弃!



2> Gabriel McAd..:

出于安全原因,您将无法在XMLHTTPRequest期间修改标头.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有