beforeSend 出现跨域问题,header里直接设置token就没问题----Day1

一开始前端调用后端接口出现跨域问题,右键查看元素,会有跨域错误提示,类似下图,后来找后端设置了一下,问题解决。可以登录获取token等参数了。

但是 请求设备列表时,beforeSend 中设置token却失败了,没有效果,出错,然后后端程序给的解决方案是在header中设置。

//beforesend这个不行,传不过去
 beforeSend: function(xhr) {
     xhr.setRequestHeader("token", window.sessionStorage.getItem("Token"));

},

是在header里直接设置token就没问题

 headers: { 'Content-Type': 'application/json;charset=utf8', 'token': window.sessionStorage.getItem("Token") },

 

layui框架 ajax 调用接口,登录,查询设备 记录一下

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
    html,
    body {
        width: 100%;
        height: 100%;
        overflow: hidden;
        margin: 0;
        padding: 0;
        background-color: #062F6B;
    }
    </style>
    <script src="../layuiadmin/layui/layui.js"></script>
    <script>
    layui.use(['form'], function() {
        var $ = layui.$,
            form = layui.form;
        window.setInterval(function() {
            refreshToken();
        }, 10 * 60 * 1000); //60*1000 秒  10*60*1000=10分钟 刷新一次token,防止token过期
        function refreshToken() {
            $.ajax({
                type: 'POST',
                url: '/Login/Account/PhoneLogpwd',
                data: { "oldToken": window.sessionStorage.getItem("token") },
                contentType: 'application/json',
                success: function(result) {
                    alert(JSON.stringify(result));
                    if (result.resultCode == "10000000") {
                        //登录成功
                        console.log(result.data);
                        var token = result.data.token;
                        alert(token);
                        //将生成的token重新放入到session中
                        window.sessionStorage.setItem("token", token);
                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(JSON.stringify(errorThrown))
                }
            });
        }
        
        login();

        function login() {
            $.ajax({
                type: 'POST',
                url: '/Login/AccountPwd',
                data: { "loginName": "haisen", "loginpwd": "123456" },

                dataType: "json",
                success: function(result) {
                    // alert(JSON.stringify(result));
                    if (result.resultCode == "10000000") {
                        //登录成功

                        console.log(result.data);

                        var token = result.data.token;

                        //将token放入到session中
                        window.sessionStorage.setItem("Token", token);

                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(JSON.stringify(errorThrown))
                }
            });
        }


        getDevices();
        function getDevices() {
            $.ajax({
                type: 'GET',
                url: '/Device/List',
                // data: { "address": "" },
                dataType: 'json',
                headers: { 'Content-Type': 'application/json;charset=utf8', 'token': window.sessionStorage.getItem("Token") },
                
                success: function(result) {
                    alert(result.resultCode);
                    if (result.resultCode == "10000000") {
                        //登录成功
                        //获取设备信息
                        alert("success");
                        console.log(result.data);

                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(2);
                    if (typeof error_callback == "function") {
                        error_callback(errorThrown); //成功后回调函数

                    }
                }
            });
        }

       


    });

    

 
    </script>
</head>

<body>
</body>

</html>

     

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值