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

2021/01/06 13:51 · jquery ·  · 0评论

我正在尝试使用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;
  }
});

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

xhrFields: {
    withCredentials: true
}

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

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

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

如果使用document.cookie设置cookie,则在发送请求时,cookie头将包含它。

https://developer.mozilla.org/En/Server-Side_Access_Control

允许您起源,也可以将Access-Control-Allow-Credentials HTTP标头设置为true

如果您的请求与jquery代码位于同一域,则可以使用jquery cookie插件

本文地址:http://jquery.askforanswer.com/ruhezaijavascriptzhongshiyongxmlhttprequestshezhicookiebiaotou.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!