AngularJs调用JAX-RS服务返回一个(415 Unsupported Media Type)

时间:2016-10-14 14:56:25

标签: angularjs rest csv jax-rs

我整天都在苦苦挣扎,无法解决这个问题。 我有一个JAX-RS web服务,它应该以byteArray格式将CSV文件返回给ANgularJS客户端:服务代码如下

@POST
@Path("/{id_user}/transactionsCsv")
@Produces({MediaType.APPLICATION_OCTET_STREAM})
@ApiOperation(value = "Transactions de l'utilisateur connecté sous forme   CSV",response = byte[].class)
@RolesAllowed(value = SecurityRoles.PORTAIL_ACTIVITE_RUBRIQUE)
public Response getOperationsCsv(@PathParam("id_user") long id_user,
                              @Context HttpServletRequest request, final TransactionFiltreDTO filtre) throws MalformedURLException {    

    //CsvContent is a StringBuilder converted to a byte array 
    byte [] CsvContent = csvExportService.buildCsv();

    ResponseBuilder response = Response.ok(new ByteArrayInputStream(CsvContent));

    response.header(HttpHeaders.CONTENT_DISPOSITION, 
                    "attachment; filename="+"activite"+".csv")
                    .header(HttpHeaders.CONTENT_TYPE, "application/csv");

    return response.build(); 

}

这是我的AngularJS电话:

 fetchCsv: function() {
     return $http({
       url: SERVER_CONTEXT + '/rest/utilisateurs/' + Session.id + '/transactionsCsv',
       method: 'POST',
       params: {},
       headers: {
         'Content-type': 'application/csv'
       },
       responseType: 'arraybuffer',
       timeout: '20000'
     });
   },

这里的问题是呼叫返回: 415(不支持的媒体类型)! 任何人都可以告诉我,如果我在服务器端或客户端代码丢失了什么? 谢谢:))

0 个答案:

没有答案