Javascript 欢迎页面未使用JWT加载
我将SpringBoot与ExtJS一起使用,带有一个/login页面,这是一个带有一些jQueryJavaScript的普通JSP。我正在尝试集成JWT以保护我的数据API。使用我可以找到的实现JWT的方法,我实现了一个JWTRequestFilter,并从SpringSecurity中删除了内置的登录流 我的登录表单现在向/authenticate方法发出$ajax POST请求,该方法在响应中返回一个令牌。当我在Postman中手动设置身份验证头并为/welcome页面发出GET请求时,我得到了一个有效的响应 下面的代码是我如何尝试使用令牌更新标题并获取/welcome页面。我收到401个错误,因为当我尝试使用此代码访问页面时,身份验证标头丢失Javascript 欢迎页面未使用JWT加载,javascript,jquery,spring-boot,extjs,jwt,Javascript,Jquery,Spring Boot,Extjs,Jwt,我将SpringBoot与ExtJS一起使用,带有一个/login页面,这是一个带有一些jQueryJavaScript的普通JSP。我正在尝试集成JWT以保护我的数据API。使用我可以找到的实现JWT的方法,我实现了一个JWTRequestFilter,并从SpringSecurity中删除了内置的登录流 我的登录表单现在向/authenticate方法发出$ajax POST请求,该方法在响应中返回一个令牌。当我在Postman中手动设置身份验证头并为/welcome页面发出GET请求时,我
$form.on('submit', function(e) {
e.preventDefault();
$.ajax({
url: $form.attr('action'),
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(dat),
success: function(result) {
var d = new Date();
d.setTime(d.getTime() + (3*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
// $('head').append('<meta name="Authorization" content="Bearer ' + result.token + '"');
window.localStorage.setItem("Authorization", "Bearer " + result.token);
// document.cookie = "Authorization=Bearer "+result.token + ";" + expires + ";path=/;httpOnly";
window.location="/welcome";
} error: funciton() {}
);
$form.on('submit',函数(e){
e、 预防默认值();
$.ajax({
url:$form.attr('action'),
键入:“POST”,
数据类型:“json”,
contentType:'应用程序/json',
数据:JSON.stringify(dat),
成功:功能(结果){
var d=新日期();
d、 设置时间(d.getTime()+(3*24*60*60*1000));
var expires=“expires=“+d.toutString();
//$('head')。append('p>您没有以正确的方式添加标题。要添加标题,您需要使用beforeSend()
:
发送前:函数(xhr){
xhr.setRequestHeader(“授权”、“承载人”+JWT);
},
需要发送此选项。此外,JWT
这里表示JWT,令牌和xhr
是XMLHttpRequest
原始对象。此选项应发送到$.ajax()
的参数。这是否适用于所有ajax请求或其他请求?如果我配置XMLHttpRequest对象,当它尝试调用window.location???@ItGrunt时,是否仍会应用标头?这将仅影响参数传递到的特定ajax调用函数。对于所有请求,也可以使用方法执行。我的回答只影响我们正在讨论的特定请求。而不是其他所有内容。如果您使用window.location
,这不是AJAX调用,一个没有任何标题的普通GET请求,因此不会。感谢您的响应…那么是否可以使用xhr对象重新加载整个页面、脚本、css和所有内容?我只看到它在我n过去将数据从微服务加载到DOM@ItGrunt但是在GET请求中,通常情况下,绝对不可能发送身份验证头。但是对于JavaScript,是的,对于微服务,它们使用一种特殊的加载方法,我不确定名称,我也看到过这种方式。但是在正常的GET请求中,这是不可能的任务,并且绝对不使用窗口。位置
。