前后端传参中遇见的问题

前后端传参经常容易出错,本文记录开发springBoot+Mybatis-plus+vuecli项目中出现的传参问题及解决办法

1.前后端没有跨域配置,报错

解决方法:后端进行跨域配置,拷贝CorsConfig类

java 复制代码
package com.example.xxxx.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 全局配置可跨域访问api接口
 */

@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); //允许任何域名
        corsConfiguration.addAllowedHeader("*"); //允许任何头
        corsConfiguration.addAllowedMethod("*"); //允许任何方法
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); //注册
        return new CorsFilter(source);
    }
}

2.longtext类型 前端json内容包含转义字符,报错

WARN 9296 --- [nio-8090-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value<EOL> at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 15] (through reference chain: com.example.memo.entity.Note["content"])]

出现原因:Json 字符中有有些字段比如空格、反斜杠、换行符等一些特殊字符,但是 Json 框架没有对这些字符进行处理,就会导致出现错误。

解决方法:加入 fastjson 依赖

html 复制代码
		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.78</version>
        </dependency>

在配置文件中加入

java 复制代码
spring:
	jackson:
	    parser:
	      allow-unquoted-control-chars: true

重启项目,运行成功!

相关推荐
摇滚侠几秒前
Spring Boot3零基础教程,响应式编程的模型,笔记109
java·spring boot·笔记
excel5 分钟前
🧩 深入剖析 Vue 编译器中的 TypeScript 类型系统(第四篇)
前端
excel10 分钟前
🧩 深入剖析 Vue 编译器中的 TypeScript 类型系统(第二篇)
前端
老夫的码又出BUG了12 分钟前
分布式Web应用场景下存在的Session问题
前端·分布式·后端
excel14 分钟前
🧩 深入剖析 Vue 编译器中的 TypeScript 类型系统(第三篇)
前端
excel18 分钟前
🧩 深入剖析 Vue 编译器中的 TypeScript 类型系统(第一篇)
前端
excel20 分钟前
深度解析 Vue SFC 编译流程中的 processNormalScript 实现原理
前端
excel25 分钟前
Vue SFC 编译器源码解析:processPropsDestructure 与 transformDestructuredProps
前端
excel26 分钟前
深度解析 processDefineSlots:Vue SFC 编译阶段的 defineSlots 处理逻辑
前端
excel27 分钟前
Vue SFC 模板依赖解析机制源码详解
前端