如何解决以角度6,离子4为前端,标量为scala的混合应用程序中的CORS策略错误?

时间:2018-12-19 11:53:25

标签: json angular scala ionic-framework

我正在尝试使用GET方法进行登录,请使用以下代码:

 login(data){
 return this.http.get("http://Server_IP:88/mLogin/" + 
 data.controls['mobile'].value + "/" + 
 data.controls['password'].value,{}).pipe(tap(
    res=>{console.log('User: '+res)},
    err=>console.log(err) ));
 }

以上代码在chrome浏览器上工作正常,并且也得到了响应。但在构建APK时不起作用,即在设备上不起作用。当我们检查应用程序时,它会在控制台中得到响应,但会出现以下错误:

从原点“ http://Server_IP:88/mLog”到“ http://localhost:8080”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-来源的标头出现在请求的资源上。

这是我的scala(服务器代码):

  `nextFilter(requestHeader)
   .map { result =>
    if (requestHeader.method.equals("OPTIONS")) {
     Results.Ok.withHeaders(
    Http.HeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN -> "*",
    Http.HeaderNames.ACCESS_CONTROL_ALLOW_HEADERS -> "X-Requested- 
     With, 
    Accept, Content-Type",
    Http.HeaderNames.ACCESS_CONTROL_ALLOW_METHODS -> 
    "OPTIONS,HEAD,GET,POST,PUT,PATCH,DELETE")
   } else {
   result.withHeaders(
   Http.HeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN -> "*",
    Http.HeaderNames.ACCESS_CONTROL_ALLOW_HEADERS -> "X-Requested- 
    With, Accept, Content-Type",
 Http.HeaderNames.ACCESS_CONTROL_ALLOW_METHODS -> 
  "HEAD,GET,POST,PUT,PATCH,DELETE",
   Http.HeaderNames.ACCESS_CONTROL_EXPOSE_HEADERS -> "X-Custom- 
  Header-To-Expose")
      }
      }`

0 个答案:

没有答案