跨域:springboot+vue 发送ajax请求

た 入场券 2022-05-14 02:25 412阅读 0赞

springboot vue 发送ajax请求(跨域问题)

1)修改vue项目的config/index.js里的dev/proxyTable内容

  1. proxyTable: {
  2. // proxy all requests starting with /api to jsonplaceholder
  3. '/api': {//虚拟目录
  4. target: 'http://localhost:3000',//后台NodeSpringboot项目的请求网址
  5. changeOrigin: true,
  6. pathRewrite: {
  7. '^/api': ''//由于上面的虚拟目录实际上是不存在的,不去掉的话访问的时候显示的url会变成'http://localhost:3000/api',所以得去掉
  8. }
  9. }
  10. },

2)在springboot项目的Controller新建一个类

  1. @Configuration
  2. public class CorsConfig extends WebMvcConfigurerAdapter{
  3. @Override
  4. public void addCorsMappings(CorsRegistry registry) {
  5. System.out.println("----------------------");
  6. registry.addMapping("/**")
  7. .allowedOrigins("*")
  8. .allowCredentials(true)
  9. .allowedMethods("GET", "POST", "DELETE", "PUT")
  10. .maxAge(3600);
  11. }
  12. }

3、在vue的页面中ajax请求就好,注意
①url:’http://localhost:8763/aa‘
②controller要加@ResposeBody,因为是接收json,否则报404

(解决方法链接:https://blog.csdn.net/qq_36688143/article/details/82260722)
③ 如果返回值不是json或者list、map等类型格式,只是字符串,那vue那边的ajax会接收不到返回值,无反应

  1. aa: function (event) {
  2. $.ajax({
  3. type:'POST',
  4. url:'http://localhost:8763/aa',
  5. /* 要不要都可以
  6. headers:{
  7. "Conten-Type":"http://localhost:3000/"
  8. },*/
  9. data:{
  10. },
  11. success:function (backDate) {
  12. console.log('666');
  13. console.log(backDate);
  14. }
  15. })
  16. },

4、后台controller接收请求

  1. @ResponseBody
  2. @RequestMapping(value = {"/aa"},produces = {"application/json;charset=UTF-8"},method = RequestMethod.POST)
  3. public List aa(){
  4. List<UserInfo> list = userService.findAllUser();
  5. System.out.println("后台接收ajax请求:"+list.size());
  6. return list;
  7. }

发表评论

表情:
评论列表 (有 0 条评论,412人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ajax请求

    在Ajax应用中,jQuery的Ajax请求是非常容易而且方便的,但是初学者经常会犯一个错误,那就是Ajax请求的url不是本地或者同一个服务器下面的URI,最后导致虽然请求2

    相关 ajax请求

    ajax跨域请求 有时候公司的两个项目之间要进行联动操作,这时候就涉及的跨域, 为什么是不能像正常的请求一样请求的数据呢,这是因为浏览器有安全限制,服务器端是不存在跨域安

    相关 AJAX请求

    在分布式系统中,需要用到跨域来请求数据,什么是跨域呢? 跨域就是不同域名或者同一域名不同端口下对象之间的调用,跨域问题的产生是由于JavaScript出于安全方面的考虑,不允

    相关 ajax 请求

    两种解决方式: 1.如果个别请求允许跨域就在后端controller方法或者servlet方法中增加response.setHeader("Access-Control-Al

    相关 Ajax请求

    在测试ajax跨域请求,但是数据一开始是获取不到的,原因是:访问的接口是别人写的接口,返回的数据是不支持跨域请求所需要解析的数据的,在跨域请求接口的时候,接口中返回的数据需要是