Cross Origin在Spring Boot和Angular Cli之间如何工作?

时间:2019-03-12 08:28:04

标签: angular spring spring-boot

我正在关注本教程Spring/Angular

运行我的应用程序时出现此错误:

CORS策略已阻止从来源“ http://localhost:8080/api/employees”访问“ http://localhost:4200”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。

我对“交叉原点”提出了一些不同的问题,但我不知道确切地将其插入以及在其上插入的内容,因为在本教程中从不显示或使用它。

5 个答案:

答案 0 :(得分:0)

您可以添加 proxy.config.json

{
  "/application1/rest": {
    "target": "http://localhost:8060/",
    "secure": false
  },
 "/anotherapp": {
    "target": "http://localhost:8060/",
    "secure": false
  }  
}

然后使用:

directory\angular> ng serve --proxy-config proxy.config.json

答案 1 :(得分:0)

跨源与前端无关。您需要做的就是在后端允许前端的URL。通常,我们在后端编写一个CORS过滤器,然后在其中允许前端网址。

遵循本教程CORS with Spring

答案 2 :(得分:0)

更新

我在服务器端(春季)用@Configuration注释创建一个类:

<script src="//code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {

var userid = _spPageContextInfo.userId;

function GetCurrentUser() {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";

var requestHeaders = { "accept" : "application/json;odata=verbose" };

$.ajax({
  url : requestUri,
  contentType : "application/json;odata=verbose",
  headers : requestHeaders,
  success : onSuccess,
  error : onError
});
}

function onSuccess(data, request){
  console.log(data.d);
  var loginName = data.d.LoginName;
  var email=data.d.Email;
  alert(loginName);
  alert(email);
}

function onError(error) {
  alert(error);
}

GetCurrentUser();

});
</script>

答案 3 :(得分:0)

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class CORSConfiguration  {

   @SuppressWarnings("deprecation")
    @Bean
        public WebMvcConfigurer corsConfigurer()
        {
            return new WebMvcConfigurerAdapter() {
                @Override
                public void addCorsMappings(CorsRegistry registry) {
                    registry.addMapping("/**").allowedMethods("GET", "PUT", "POST", "DELETE", "OPTIONS");
                }    
            };
        }
}

答案 4 :(得分:0)

In Tomcat `web.xml` file set these cors.
`<filter>
    <filter - name> CorsFilter </filter-name> 
    <filter - class> org.apache.catalina.filters.CorsFilter </filter-class> 
</filter>
<filter - mapping>
    <filter - name> CorsFilter </filter-name>
    <url - pattern>/*</url-pattern>
</filter-mapping>`