vue+SpringMVC前后端数据传递

2022-07-31 09:28:51

遇到的最大的问题就是spring其他获取参数的方式都能获取,唯独@RequestBody这个注解获取不到参数,给我整了一天才明白。。
因为涉及到同源策略,所以我前端使用了代理,代理到后端接口部分;发现spring报错:请添加图片描述
原因其实就是缺少必要的参数,可能是vue代理导致Body中的参数丢失,前端报的错误是超时。
这时候呢,就不要用代理了,因为过不去,前端直接写成死路径,在后端的springMVC中配置跨域:
1.导入跨域Cors包(pom.xml)

<dependency><groupId>com.thetransactioncompany</groupId><artifactId>cors-filter</artifactId><version>2.5</version></dependency>

2.加入filter(web.xml)

<filter><filter-name>CORS</filter-name><filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class><init-param><param-name>cors.allowOrigin</param-name><param-value>*</param-value></init-param><init-param><param-name>cors.supportedMethods</param-name><param-value>GET, POST, HEAD, PUT, DELETE</param-value></init-param><init-param><param-name>cors.supportedHeaders</param-name><param-value>Authorization,Content-Type,Depth,User-Agent,X-File-Size,X-Requested-With,X-Requested-By,If-Modified-Since,X-File-Name,X-File-Type,Cache-Control,Origin,Accept</param-value></init-param><init-param><param-name>cors.exposedHeaders</param-name><param-value>Set-Cookie</param-value></init-param><init-param><param-name>cors.supportsCredentials</param-name><param-value>true</param-value></init-param><init-param><!--{3600秒之内客户端不用再发起预检请求}--><param-name>cors.maxAge</param-name><param-value>3600</param-value></init-param></filter><filter-mapping><filter-name>CORS</filter-name><url-pattern>/*</url-pattern>
    </filter-mapping>

此代码加入到Severlet标签之前,这样就能跑通了
附上spring获取参数的几种方式地址

  • 作者:今昭昭昭
  • 原文链接:https://blog.csdn.net/weixin_44868025/article/details/121657402
    更新时间:2022-07-31 09:28:51