ajax跨域请求(携带cookie)springboot

ajax跨域请求(携带cookie)


一般而言,对于跨域 XMLHttpRequest 或 Fetch 请求,浏览器不会发送身份凭证信息。如果要发送凭证信息,需要设置 XMLHttpRequest 的某个特殊标志位。


http://localhost:8080/index.html


<html>
<head>
<meta charset="UTF-8">
<title>跨域测试title>
<script type="text/javascript" src="js/jquery-1.11.3.min.js">script>
<script type="text/javascript">

    function myAjax(){
        $.ajax({
           url: 'http://localhost:8081/cors/getTime',
           type: 'post',
           dataType:'json',
           //async:false,
           data: {
                "name" : "孙悟空"
           },
           xhrFields:{withCredentials: true},
           success:function(result){
             //显示在 font 标签
                $("#show").html(result);
              }
        });
    }

script>

head>
<body>
    <input type="button" value="以ajax(post)方式获取当前时间" onclick="myAjax()" />
    <br/>
    当前时间:
    <font id="show">font>
body>
html>

其中:
ajax跨域请求(携带cookie)springboot_第1张图片


接口:http://localhost:8081/cors/getTime

@RestController
@RequestMapping("/cors")
public class GetTime {

    @RequestMapping("/getTime")
    @CrossOrigin(origins="http://localhost:8080",allowCredentials="true")
    public Date getTime(String name) {
        System.out.println(name);
        return new Date();
    }
}

携帶cookie:

ajax跨域请求(携带cookie)springboot_第2张图片

未携帶cookie:
ajax跨域请求(携带cookie)springboot_第3张图片


其他ajax方式:

$.ajax({
    ...
    xhrFields: {
        withCredentials: true
    }
});

你可能感兴趣的:(ajax跨域请求(携带cookie)springboot)