2015-06-12 4 views
4

Я использую angularjs для публикации созданных данных webapi. его работа над моей локальной системой, но когда я загрузил на сервер свою нерабочую и возвращающую ошибку, неподдерживаемый тип носителя. пожалуйста, помогите мне, как это исправить.неподдерживаемый тип носителя web api post

<script> 
var app = angular.module('MyApp', []); 

app.controller("QueryControllerController", function ($scope, $http) { 

    $scope.submit = function() { 
     if ($scope.QueryDescription) { 
      var product = { 
       "QueryDescription": $scope.QueryDescription, 
       "CategoryID": $scope.CategoryID 

      } 
      $http.post('/api/querycontroller', JSON.stringify(product)). 
      success(function (data, status, headers, config) { 
       alert('Added Successfully' + headers); 
       $('#formusers')[0].reset(); 
      }). 
      error(function (data, status, headers, config) { 
       alert(status + ", " + data + ", " + headers + "," + config); 
      }); 
     } 
    }; 

} 
); 

мой код контроллера АФИ:

[ResponseType(typeof(Query))] 

    [HttpPost] 
    public HttpResponseMessage Post([FromBody]Query Services) 
    { 

     Services.CommunityID = UserStatus.GetUserID(User.Identity.Name); 
     Services = repository.Add(Services); 
     var response = Request.CreateResponse<Query>(HttpStatusCode.Created, Services); 
     string uri = Url.Route(null, new { id = Services.QueryID }); 
     response.Headers.Location = new Uri(Request.RequestUri, uri); 

     return response; 

    } 

Когда я пытаюсь отправить, я получаю ответ неподдерживаемых Тип носителя .:

"Message": "The request entity's media type 'text/plain' is not supported for this resource." 

ответ

0

Удалите [ResponseType (typeof (Query))] и использовать класс ViewModel в качестве параметра

[HttpPost] 
public HttpResponseMessage Post([FromBody]ProductViewModel product) 
{ 

Также ...

Попробуйте подход (в agunlar контроллера) предложил https://stackoverflow.com/users/1267724/john в ответ на это сообщение: change Content-type to "application/json" POST method, RESTful API

Проводка объекта JSON довольно легко в Угловое. Все, что вам нужно сделать, это следующее:

Создать JavaScript Object

Я буду использовать ваши точные свойства из кода.

var postObject = new Object(); 
postObject.userId = "testAgent2"; 
postObject.token = "testAgent2"; 
postObject.terminalInfo = "test2"; 
postObject.forceLogin = "false"; 
Post the object to the API 

Чтобы разместить объект в API вы просто нужен простой $ http.post функцию. Смотрите ниже:

$http.post("/path/to/api/", postObject).success(function(data){ 
    //Callback function here. 
    //"data" is the response from the server. 
}); 

Поскольку JSON является метод по умолчанию размещения на API, нет необходимости сбросить это. См. Эту ссылку в ярлыках $ http для получения дополнительной информации.

Что касается вашего кода, попробуйте изменить способ сохранения , включив этот простой метод почты.

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