2014-01-06 12 views
1

HTTP POST получает сообщение об ошибке при загрузке многокомпонентные данныеAngularJS + Spring: 415 неподдерживаемый тип носителя

var formData = new FormData(); 

formData.append("startDate",$("#startDate").val()); 
formData.append("File1",$("input[name='file']")[0].files[0]); 
formData.append("File2",$("input[name='file2']")[0].files[0]); 

$http.post("sampleurl",formData, 
{ headers : 'Content-Type' : undefined}, 
transformRequest : angular.identity 
}).then(function(data){ 
    alert(data); 
    }); 
} 

мой стороне сервера код

@RequestMapping(value = "sampleurl", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON) 
    public @ResponseBody 
    Response createSomething(
      @RequestBody Request request, 
      HttpServletRequest httpServletRequest, 
      HttpServletResponse httpServletResponse) { 
      // code here 
    } 

что пошло не так здесь, я stucked найти решение, пожалуйста, помогите мне найти решение

ответ

2

Ошибка HTTP 415 означает, что содержание запроса не соответствует соответствующему формату.

Spring MVC '@RequestBody' ожидает тело json (с типом Content-Type равным «application/json»), и вы явно задали свой Content-Type неопределенным.

Решение состоит в том, чтобы установить ваш контент-тип в «application/json» в вашем почтовом запросе или удалить аннотацию @RequestBody.

Кажется, что вы пытаетесь загрузить файлы, проще было бы удалить аннотацию @RequestBody.

+0

спасибо большое за ответ, его работа прекрасна сейчас – Satish

0

Вы должны посылать multipart/form-data и не undefined значение в вашем Content-Type заголовке (Accept заголовка посланного от клиента должна быть application/json). Также убедитесь, что метод на стороне сервера использует этот тип носителя.

+0

undefined примет подходящий тип контента в соответствии с публикацией, dats не проблема, если мы не упомянем, что потребляет на стороне сервера, он примет текст, json и */* – Satish

+0

хорошо, спасибо за объяснение. –

Смежные вопросы