«Сообщение»: «Запрос содержит тело объекта, но не содержит заголовок Content-Type. Предполагаемый тип медиа« application / octet-stream »не поддерживается - PullRequest
0 голосов
/ 11 января 2020

Я не уверен, что мне не хватает. Этот код прекрасно работает на моей локальной машине разработки, и когда я развернул его на тестовом сервере, он продолжает выдавать внутреннюю ошибку сервера или «Сообщение»: «Запрос содержит тело объекта, но не содержит заголовок Content-Type. Предполагаемый тип носителя 'application / octet-stream' не поддерживается для этого ресурса.

Я все здесь делаю правильно? Я просто вставляю простые данные студентов. Здесь одна функция webapi вставляет данные, собранные из двух объектов (Student и StudentAddress) Поэтому я сохраняю эти два объекта в модель и затем использую их в WebAPI.

Мне все еще интересно, как это работает на моей локальной машине. Я развернул все файлы на тестовом сервере.

Модель студента

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebAPI.Models
{
    public class StudentModel
    {
        public Student Student { get; set; }
        public StudentAddress StudentAddress { get; set; }
    }
}

Контроллер студента

// POST: api/Student/InsertStudent
[ResponseType(typeof(StudentModel))]
[HttpPost]
public HttpResponseMessage InsertStudent(StudentModel studentModel)
{
    objCSADBEntities.Student.Add(studentModel.Student);
    objCSADBEntities.SaveChanges();

    objCSADBEntities.StudentAddress.Add(studentModel.StudentAddress);
    objCSADBEntities.SaveChanges();

    return Request.CreateResponse(HttpStatusCode.OK, studentModel);
}

При нажатии кнопки «Отправить» звонит Angularjs отправить функция, которая имеет этот код

        var Student = {
                Name: $('#txt-FacilityLegalName').val().trim(),
                LastDate: '2016-12-09 05:24:55.407',
                SSMA_TimeStamp: '0x000000000778FCB1',
            };

            var StudentAddress = {
                AddressLine1: $('#txt-MailingAddressLine1').val().trim(),
                AddressLine2: ($('#txt-MailingAddressLine2').val().trim() != '' ? $('#txt-MailingAddressLine2').val().trim() : null),
                City: $('#txt-City').val(),
                State: $scope.objselectedstate.selectedstate.Value,
                ZipCode: $('#txt-ZipCode').val().trim(),
                ZipExt: ($('#txt-ZipExt').val().trim() != '' ? $('#txt-ZipExt').val().trim() : null),
                FullName: $('#txt-ContactFirstName').val().trim() + ' ' + $('#txt-ContactLastName').val().trim(),
                FirstName: $('#txt-ContactFirstName').val().trim(),
                LastName: $('#txt-ContactLastName').val().trim(),
                PhoneNumber: $('#txt-ContactPhone').val().trim(),
                Ext: ($('#txt-ContactPhoneExt').val().trim() != '' ? $('#txt-ContactPhoneExt').val().trim() : null),
                Fax: ($('#txt-ContactFax').val().trim() != '' ? $('#txt-ContactFax').val().trim() : null),
                Email: $('#txt-Email').val().trim()
            };
            var studentModelModel = { studentAddress: StudentAddress, student: Student };
            //Insert Student
            var insertStudent = providerService.insertStudent($scope.webAPIHostName, studentModelModel);
            insertStudent.then(function (response) {
                //success response here
            }, function (error) {
                // error handling here
            });

Angularjs Сервис. js

(function () {

    var app = angular.module('myApp');

    app.factory('studentService', ['$http', function ($http) {
        var factory = [];

        //Insert Student
        factory.insertStudent = function (webAPIHostName, studentModel) {
            var request = $http({
                method: 'POST',
                url: webAPIHostName + '/Provider/InsertStudent',
                data: studentModel
            })
            return request;
        }

        return factory;
    }
    ]);
})();       

В консоли я вижу это Запрос и ответ

Request URL: http://localhost:5555/webapi/api/Student/InsertStudent
Request Method: POST
Status Code: 415 Unsupported Media Type
Referrer Policy: no-referrer-when-downgrade
Cache-Control: no-cache
Content-Length: 108
Content-Type: application/json; charset=utf-8
Date: Fri, 10 Jan 2020 23:50:25 GMT
Expires: -1
Pragma: no-cache
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=Edge
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 374
Content-Type: application/octet-stream; charset=UTF-8
Cookie: ASP.NET_SessionId=qaqikpomv1fuqlorb5difdxp
...