一开始前端调用后端接口出现跨域问题,右键查看元素,会有跨域错误提示,类似下图,后来找后端设置了一下,问题解决。可以登录获取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>