我整天都在苦苦挣扎,无法解决这个问题。 我有一个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(不支持的媒体类型)! 任何人都可以告诉我,如果我在服务器端或客户端代码丢失了什么? 谢谢:))