跨域的设置如下面代码

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //.allowedOrigins("http://192.168.0.120:8070", "null") // 这里是页面调用的地址
                .allowedOrigins("*", "null")
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .maxAge(3600)
                .allowedHeaders("*")
                //.exposedHeaders("Authorization", "X-Frame-Options")
                //.allowedHeaders("Content-Type", "application/json; charset=utf-8") // post 提交的时候415错误前端的数据格式一致
                .allowCredentials(true);
    }
}

 

java 的服务端代码如下:

@RequestMapping(value = "/in",method = RequestMethod.POST)
public String getIndex( String id , String  name){ //服务器端加
    String  str = id +name;
    logger.info(str+"---77777777777777777777------------------");
    return str;
}

我通过ajax可以跨域调用成功,参数传递正常。

但是用vue调用就出错,不管怎么调试,参数总是null ,后来折腾好久。最终确定是vue方面出的问题,

vue调用的get请求头为:  'Content-Type': 'application/json' 可以正常调用

但是post的时候,就报错参数一直为null, 后来用 'Content-Type': 'application/json' 这请求头

同时 js传递参数要序列化,然后问题解决

Logo

前往低代码交流专区

更多推荐