@PostMapping("/login") public JsonData login(@RequestParam(required = true) String username, @RequestParam(required = true) String password) 这个接口,前端使用vue如何调用
时间: 2024-03-09 11:48:57 浏览: 84
前端使用vue调用这个接口可以通过axios实现。首先需要在vue项目中安装axios,可以在终端中运行以下命令:
```
npm install axios
```
然后,在需要调用接口的组件中,可以使用以下代码发送POST请求:
```
import axios from 'axios'
axios.post('/login', {
username: 'yourUsername',
password: 'yourPassword'
}).then(response => {
console.log(response.data)
}).catch(error => {
console.log(error)
})
```
其中,'/login'是接口的URL地址,{ username: 'yourUsername', password: 'yourPassword' } 是需要传递给接口的参数,response.data 是接口返回的数据。需要注意的是,如果接口返回的是JSON格式的数据,需要使用JSON.parse()方法将其转换成JavaScript对象。
相关问题
public JsonData login(@RequestParam(required = true) String username, @RequestParam(required = true) String password),前端vue访问报错: Required String parameter 'username' is not present,这是为什么
这个错误提示说明前端发送的POST请求中缺少了`username`参数,导致后端无法接收到该参数。
可能的原因是前端发送的请求格式不正确或者参数名写错了。可以检查一下前端发送的请求是否包含了`username`参数,以及该参数的名称是否正确。
此外,也可以检查一下后端的代码是否正确,比如是否使用了`@RequestParam`注解来接收请求参数,参数名称是否与前端发送的请求一致等。建议在后端代码中添加日志输出,方便查看请求的详细信息,例如:
```java
@PostMapping("/login")
public JsonData login(@RequestParam(required = true) String username, @RequestParam(required = true) String password) {
log.info("Received login request with username: {}", username);
// 处理登录逻辑
// ...
}
```
这样,在控制台中就可以看到每个请求的详细信息,方便定位问题。
前端vue的代码 this.$axios({ url:'/user/login', method:'post', data:{ username:'18202811851',//账户 password:'123456',//密码 } }).then(()=>{ // this.$router.push('/Page') }),public JsonData login(@RequestParam(required = true) String username, @RequestParam(required = true) String password),前端vue访问报错: Required String parameter 'username' is not present,这是为什么
根据你提供的前端vue代码,请求的参数应该是按照正确的格式发送的。因此,问题可能出在后端代码中。
首先,建议检查一下后端代码中的`@RequestParam`注解是否正确使用。例如,`@RequestParam(required = true)`表示该参数是必需的,如果请求中缺少该参数,会抛出异常。如果参数缺少或者参数名写错了,就会报错。
其次,还需要检查一下后端接口的请求方式是否正确。例如,在前端vue代码中,请求的是`POST`请求,而后端接口中的注解是`@PostMapping`,这两者需要保持一致。如果前端发送的是`GET`请求,后端应该使用`@GetMapping`注解来接收请求。
最后,建议在后端代码中添加日志输出,方便查看请求的详细信息,例如:
```java
@PostMapping("/login")
public JsonData login(@RequestParam(required = true) String username, @RequestParam(required = true) String password) {
log.info("Received login request with username: {}", username);
// 处理登录逻辑
// ...
}
```
这样,在控制台中就可以看到每个请求的详细信息,方便定位问题。
阅读全文
相关推荐







搭建个人博客 ( YIDBlog )
(node+express+ejs+node+mongodb+mongoose)
(在这里认为大家已经知道如何用命令行创建node项目了,推荐用WebStorm快速创建)
实现以下简单的功能: (一些详细的表单验证先忽略)
用户注册
用户登录
用户登出
发表文章
编辑文章
删除文章
一. 配置路由
1.将目录下的 app.js 更改如下
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var app = express();
// 设置模板目录
app.set('views', path.join(__dirname, 'views'));
// 设置模板引擎为 ejs
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
// 设置静态文件目录
app.use(express.static(path.join(__dirname, 'public')));
// 设置路由
routes(app);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
app.listen(app.get('post'),function(){
console.log("Express server listening on port: " + 3000);
});
module.exports = app;
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2. 将routes下的index.js更改如下
module.exports = function(app){
app.get('/',function(req,res,next){
res.render('index',{
title:'首页',
});
}
AI写代码
javascript
运行
1
2
3
4
5
6
3. 在views中的index.ejs,代码如下:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
</head>
<body>
<%= title %>
Welcome to <%= title %>
</body>
</html>
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
4. 运行项目,在浏览器输入:http://localhost:3000/
这样我们就很愉快就路由给配置好了。
接下来我们来一起搭建简单的界面,这里我用到bootstrap框架:
我们先在index.js中将要展示的界面进行路由的配置:
module.exports = function(app){
//首页
app.get('/',function(req,res,next){
res.render('index',{
title:'首页',
});
//注册界面
app.get('/reg',function(req,res,next){
res.render('reg',{
title:'注册',
});
//登录
app.get('/login',function(req,res,next){
res.render('login',{
title:'登录',
});
//发表文章
app.get('/post',function(req,res,next){
res.render('post',{
title:'发表文章',
});
}
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
*开始我们的界面设计了,用Ejs模板引擎的<%- include %> 来将相同的部分分离开
创建 header.ejs
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title><%= title %> - Blog</title>
<script src="/https/wenku.csdn.net/javascripts/bootstrap.min.js"></script>
<script src="/https/wenku.csdn.net/javascripts/jquery.min.js"></script>
</head>
<body>
YIDBlog
首页
注册
登录
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
创建 footer.ejs
</body>
</html>
AI写代码
javascript
运行
1
2
3
创建 首页- index.ejs
<%- include header %>
<form>
<input type="text" class="form-control" placeholder="SEARCH" name="keyword">
<input type="submit" value="搜索" class="btn btn-default" />
</form>
学习node.js
作者:小蚁
|
日期:2016-12-14
<%- include footer %>
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
首页完成,显示效果如下:
创建 登录界面-login.ejs
<%- include header %>
<form class="form-horizontal" role="form" method="POST">
<label for="firstname" class="col-sm-2 control-label">用户名</label>
<input type="text" class="form-control" name="username" placeholder="输入用户名">
<label for="lastname" class="col-sm-2 control-label">密码</label>
<input type="password" class="form-control" name="password" placeholder="输入密码">
<input type="submit" class="btn btn-default" value="登录" />
</form>
<%- include footer %>
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
登录页面 效果如下:
创建 注册界面-reg.ejs
<%- include header %>
<form class="form-horizontal" role="form" method="POST">
<label for="firstname" class="col-sm-2 control-label">用户名</label>
<input type="text" class="form-control" name="username" placeholder="输入用户名">
<label for="lastname" class="col-sm-2 control-label">密码</label>
<input type="password" class="form-control" name="password" placeholder="输入密码">
<label for="lastname" class="col-sm-2 control-label">重复密码</label>
<input type="password" class="form-control" name="password-repeat" placeholder="输入密码">
<label for="lastname" class="col-sm-2 control-label">邮箱</label>
<input type="text" class="form-control" name="email" placeholder="再次输入密码">
<input type="submit" class="btn btn-default" value="完成注册" />
</form>
<%- include footer %>
AI写代码
javascript
运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
登录页面 效果如下:
创建 发表文章界面-post.ejs
<%- include header %>
<form method="post" enctype="multipart/form-data">
<label for="name">标题:</label>
<input type="text" class="form-control" name="title" placeholder="输入标题">
<label for="name">文章</label>
<textarea class="form-control" name="article" rows="8"></textarea>
<input type="hidden" name="pv" value=0 >
<input type="submit" value="发表" class="btn btn-default"/>
</form>
<%- include footer %>
AI写代码
javascript
运行






