axios({ method: 'get', url: '/BookShopSystem_war/getQueryBook/' + bookName@GetMapping("/getQueryBook/{bookName}") @ResponseBody public Map<String, Object> getQueryBook(@PathVariable("bookName") String bookName) { List<Book> queryBookList = bookService.getQueryBook(bookName); HashMap<String, Object> result = new HashMap<>(); result.put("code", 0); result.put("msg", "success"); result.put("data", queryBookList); return result; }<select id="getQueryBook" parameterType="String" resultMap="bookResult"> select * from book where book_name like CONCAT('%',#{bookName},'%') </select>传递的参数会乱码
时间: 2023-07-19 21:52:22 浏览: 82
这个问题可能是因为没有设置正确的编码格式导致的。你可以尝试在请求头中添加 "Content-Type": "application/json;charset=UTF-8",把参数以 JSON 格式传递。另外,在后端的 Controller 中,可以添加注解 @RequestMapping(produces = "application/json;charset=UTF-8") 来指定返回的数据编码格式。同时,还可以在 MyBatis 的配置文件中添加 <setting name="defaultCharset" value="UTF-8"/> 来设置默认的编码格式。
相关问题
axios({ method: 'get', url: '/BookShopSystem_war/getQueryBook/' + encodeURIComponent(bookName)
这段代码使用了Axios库发送一个GET请求,请求的url中包含了查询的书名参数。为了确保传递的参数不会出现乱码,使用了JavaScript内置的encodeURIComponent()函数对参数进行编码。这个函数会将特殊字符进行编码,例如将中文字符编码为%xx的形式,保证了参数的正确传递。后端接收到请求后,需要使用相应的解码函数对参数进行解码,以获取正确的参数值。
methods: { delCollect(bookId) { var _this = this; axios({ method: "delete", url: "http://localhost:8080/BookShopSystem_war/deleteCollect", data: { userId: _this.userId, bookId: bookId } }).then(resp => { alert("取消收藏"); }); } }该方法还需要userId,请仿照以下接口的方式获取到usrIdmounted() { var _this = this; axios.get('/BookShopSystem_war/getUserId') .then((response) => { this.userId = response.data; var userId = this.userId; // 将userId赋值给一个变量 axios({ method: 'get', url: 'http://localhost:8080/BookShopSystem_war/getCollectBook/' + userId }).then(function (result) { var code = result.data.code; var data = result.data.data; if (code == 200) { _this.collectBook = data; } console.log(data) }) }) .catch((error) => { console.log(error); }); },
你的问题是如何获取 userId,对吧?
对于获取 userId,可以仿照以下接口的方式,在 mounted 钩子函数中使用 axios 发送 get 请求,获取到后将 userId 赋值给一个变量。具体代码如下:
```
mounted() {
var _this = this;
axios.get('/BookShopSystem_war/getUserId')
.then((response) => {
this.userId = response.data;
var userId = this.userId; // 将userId赋值给一个变量
axios({
method: 'get',
url: 'http://localhost:8080/BookShopSystem_war/getCollectBook/' + userId
}).then(function (result) {
var code = result.data.code;
var data = result.data.data;
if (code == 200) {
_this.collectBook = data;
}
console.log(data)
})
})
.catch((error) => {
console.log(error);
});
},
```
在 delCollect 方法中,可以直接使用 this.userId 获取到 userId,具体代码如下:
```
delCollect(bookId) {
var _this = this;
axios({
method: "delete",
url: "http://localhost:8080/BookShopSystem_war/deleteCollect",
data: {
userId: this.userId, // 直接使用 this.userId 获取到 userId
bookId: bookId
}
}).then(resp => {
alert("取消收藏");
});
}
```
阅读全文