跨域Ajax请求时是否带Cookie的设置

本文探讨了在跨域Ajax请求中是否携带Cookie的设置。客户端通过设置crossDomain参数来决定是否携带Cookie,而服务器端则通过设置响应Header中的Access-Control-Allow-*参数来控制跨域策略。对于Java应用,可以使用Filter实现跨域设置,例如使用CORSFilter,并在web.xml中配置。此外,当启用withCredentials时,需要特别注意Access-Control-Allow-Origin的设置,以确保跨域时Cookie的正确处理。
摘要由CSDN通过智能技术生成

1. 无关Cookie跨域Ajax请求

客户端

以 Jquery 的 ajax 为例:

$.ajax({
        url : 'http://remote.domain.com/corsrequest',
        data : data,
        dataType: 'json',
        type : 'POST',
        crossDomain: true,
        contentType: "application/json", // POST时必须
        ...

主要注意的是参数 crossDomain: true。发送Ajax时,Request header 中会包含跨域的额外信息,但不会含cookie。

服务器端

跨域的允许主要由服务器端控制。服务器端通过在响应的 header 中设置 Access-Control-Allow-Origin 及相关一系列参数,提供跨域访问的允许策略。相关参数的设置介绍,可参见 [Access_control_CORS]

以Java为例:

/**
* Spring Controller中的方法:
*/
    @RequestMapping(value = "/corsrequest")
    @ResponseBody
    public Map<String, Object> mainHeaderInfo(HttpServletResponse response) {
        response.setHeader("Access-Control-Allow-Origin", "*");
        ...
}
  • 通过在响应 header 中设置 ‘*’ 来允许来自所有域的跨域请求访问。

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值