作者:Martha829 | 来源:互联网 | 2023-01-28 19:56
我永远是一个jQuery用户.但现在我正在构建我的第一个使用JWT进行身份验证的API.这就是说,我在网上发现的大多数教程使用带有身份验证标头的API来使用Axios来发出这些请求.
我已经在项目中使用了jQuery,所以,我很想做简单的jQuery ajax调用,但我不确定使用它是否有任何硬缺点.
这将是我的jQuery代码:
$.ajax({
url: "http://localhost:8080/login",
type: 'POST',
data: formData,
error : function(err) {
console.log('Error!', err)
},
success: function(data) {
console.log('Success!')
localStorage.setItem('token', data.id_token);
}
});
发送请求
$.ajax({
url: "http://localhost:8080/login",
type: 'GET',
// Fetch the stored token from localStorage and set in the header
headers: {"Authorization": localStorage.getItem('token')}
});
在阅读Axios功能后,最后一个是:客户端支持防范XSRF.jQuery ajax不支持吗?我还需要做些额外的事情来保护这个吗?还有什么能够使用像Axios这样的其他库而不是jQuery吗?
1> Kyle Richard..:
我在jQuery $.ajax
文档中没有看到任何明确的支持.话虽这么说,这是你可以用beforeSend
设置做的事情.在beforeSend
你修改jqHXR包括您XSRF信息.
@charlietfl提到你也可以在全局中执行此操作,ajaxSend()
因此它适用于所有实例$.ajax()
这axios
是做什么的:
// `xsrfCOOKIEName` is the name of the COOKIE to use as a value for xsrf token
xsrfCOOKIEName: 'XSRF-TOKEN', // default
// `xsrfHeaderName` is the name of the http header that carries the xsrf token value
xsrfHeaderName: 'X-XSRF-TOKEN', // default
如果您已在项目中使用jQuery,并且可以自己处理XSRF,那么请使用$.ajax()
.
"还有什么值得使用像Axios这样的其他库而不是jQuery吗?"
我绝对会说.专用于处理http的库将应用程序框架或表示库中的进程分离.