2017-01-12 4 views
0

У меня есть сообщение. Я использую akka-http. И я должен позвонить по этому маршруту с другого сервера.json и cors with akka http

Поэтому я должен добавить корс с HttpOriginRange. * С ch.megard.akka.http.cors.CorsDirectives.

Ответ - json. И я хочу иметь приложение ContentType/json

Как я могу это сделать?

Вот мой маршрут Код:

settings = CorsSettings.defaultSettings.copy(allowGenericHttpRequests = true, allowCredentials = false, allowedOrigins = HttpOriginRange.*) 
val route: Route = 
     handleRejections(CorsDirectives.corsRejectionHandler) { 
      cors(settings) { 
       handleRejections(RejectionHandler.default) { 
        post { 
         authenticated(doAuthApp) { app => 
          complete("success") 
         } 
        } 
       } 
      } 
     } 

Я попытался это:

val route: Route = 

    handleRejections(CorsDirectives.corsRejectionHandler) { 
     cors(WebServer.settings) { 
      handleRejections(RejectionHandler.default) { 
       (decodeRequest & encodeResponse) { 
        mapResponseEntity(_.withContentType(ContentTypes.`application/json`)) { 
       post { 
        authenticated(doAuthApp) { app => 
         complete("success") 
        } 
       } 
      } 
     } 
    } 
    } 
} 

Если я что у меня есть ошибка: Неожиданные 's'

Не могли бы вы помочь мне, пожалуйста ?

+0

Я думаю, что размещение полного сообщения об ошибке поможет –

+0

Это уник сообщения я имею в возвращении с почтальоном. Ничто в моих журналах не печально :( –

+0

HttpResponse (entity = HttpEntity (ContentType (MediaTypes.'application/json'), «success» .getBytes))? – gaston

ответ

0

Если вы пытаетесь

var settings = CorsSettings.defaultSettings.copy(allowGenericHttpRequests = true, allowCredentials = false, allowedOrigins = HttpOriginRange.*) 

val route = 
pathPrefix("testEndpoint") { 
    handleRejections(CorsDirectives.corsRejectionHandler) { 
    cors(settings) { 
     handleRejections(RejectionHandler.default) { 
     post { 
      entity(as[String]) { 
      app => 
       complete("success") 
      } 
     } 
     } 
    } 
    } 
}