http://blog.csdn.net/dalangzhonghangxing/article/details/51994812
产生跨域访问的情况主要是因为请求的发起者与请求的接受者1、域名不同;2、端口号不同
下面给出详细步骤:
- 如果要用到Cookie,那么需要在前端设置.withCredentials=true
- 在后端写一个配置类CorsConfig,这个类继承WebMvcConfigurerAdapter,在里面进行后台跨域请求配置。
下面给出相应代码
js中的配置全局$http请求的代码:
- var utils = angular.module('ecnuUtils', ['ngCookies', 'ngStorage']);
- utils.config(['$httpProvider', config]);
-
- function config($httpProvider) {
- $httpProvider.defaults.withCredentials = true;
- $httpProvider.defaults.headers.common = { 'Access-Control-Allow-Origin' : '*' }
- }
CorsConfig的代码:
- package edu.ecnu.yjsy.conf;
-
- 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 CorsConfig extends WebMvcConfigurerAdapter {
-
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**")
- .allowedOrigins("*")
- .allowCredentials(true)
- .allowedMethods("GET", "POST", "DELETE", "PUT")
- .maxAge(3600);
- }
-
- }