当前位置: 首页 > 面试题库 >

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

史朗
2023-03-14
问题内容

我正在尝试使用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)。不要放弃!



 类似资料:
  • 本文向大家介绍如何在JavaScript中使用AJAX请求设置Cookie值?,包括了如何在JavaScript中使用AJAX请求设置Cookie值?的使用技巧和注意事项,需要的朋友参考一下 我们需要使用AJAX请求或以任何AJAX请求将这些cookie发送到服务器的方式来设置cookie。 这里要注意的一件事是,对任何远程服务器的每个AJAX请求都会自动将所有cookie发送到该服务器,而无需我

  • 问题内容: 我试图根据我在HTML中选择的CSS文件来设置Cookie。我有一个带有选项列表的表单,以及不同的CSS文件作为值。当我选择一个文件时,应将其保存到Cookie大约一周。下次打开HTML文件时,它应该是您选择的上一个文件。 JavaScript代码: HTML代码: 问题答案: 我发现以下代码比其他任何代码都简单得多: 现在,调用函数

  • 这里,我需要将cookie-header设置为不显式地添加cookie-header(像浏览器那样)。尝试这样做时,会给出错误“”。 虽然我已经找到了一个补丁,并成功地发送了cookie-header。但想知道为什么设置cookie-header被禁用了?我曾经读过,发现它是数据完整性和安全性所必需的,但在这种情况下,什么安全性可以被破坏,没有提到哪里。我想评估一下,如果我使用补丁,这个数据完整性

  • 问题内容: 我正在测试一个Web应用程序。在主页的导航菜单中,单击节点后, 将调用javascript 函数。我查找了此功能,该页面将在重定向到目标 页面之前设置。 那么,如何为每个请求在JMeter中设置cookie? 问题答案: 在BeanShell预处理器中,放入: 请注意,使用JSR223 PreProcessor + Groovy + Caching会更好地提高 性能

  • 问题内容: 如何使用jQuery设置和取消设置Cookie,例如创建一个名为的Cookie 并将其值设置为? 问题答案: 2019年4月更新 Cookie的读取/操作不需要jQuery,因此请不要使用下面的原始答案。 转到https://github.com/js-cookie/js-cookie,然后在其中使用不依赖jQuery的库。 基本示例: 有关详细信息,请参见github上的文档。 参见

  • 问题内容: 我在尝试在 Liferay 6.0 portlet中 设置会话cookie时遇到问题。我希望能够将cookie设置为客户端浏览器,以存储用于linkedin身份验证的应用程序密钥,然后可以在其中通过其他portlet检索它。 我可以使用以下方法读取Cookie: 这是我阅读失败的尝试。 问题答案: 我发现,无需大量修改Liferay门户本身,设置portlet cookie的唯一方法就