Вызов $.ajax возвращает службу net::ERR_CONNECTION_RESET wcf

У меня есть вызов ajax POST для моей службы wcf. Он работал нормально, когда я возвращал строку (полезная нагрузка json), но как только я переключился на возврат объекта «HttpResponseMessage», он начал выдавать мне ERR_CONNECTION_RESET. Та же полезная нагрузка возвращается, за исключением того, что теперь я хочу вернуть правильные ответы, такие как 200 и 404.

Вот вызов ajax:

function Login (cred) {
$.ajax({
    type: "POST",
    url:  ServerConfig.Server + ServerConfig.Service + "/login/",
    // The key needs to match your method's input parameter (case-sensitive).
    data: JSON.stringify(cred),
    contentType: "application/json",
    dataType: "json",
    crossDomain: true,
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
    },        
    error: loginFailed,
    success: loginSuccess
});
}

и вот мой метод wcf:

public HttpResponseMessage Login(string username, string password)
{
        repository = new DbRepository();
        HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest);
        var res = string.Empty;

        var user = repository.Login(username, password);

        if (null != user)
        {
            res = JsonConvert.SerializeObject(user);
            response = new HttpResponseMessage(HttpStatusCode.OK)
            {
               Content = new StringContent(res)
            };
        }
        else
        {
            return response;
        }            

        return response;
}

Я подтвердил, что возврат к строке работает, как и ожидалось. Может кто-нибудь пролить свет на то, что может происходить?

Спасибо.

РЕДАКТИРОВАТЬ: Вот как выглядит мой объект "cred" и как он был создан:

$('.signin').on("click", function () {
            var user = $('.username').val();
            var pass = $('.password').val();
            var cred = { "username": user, "password": pass };
            Login(cred);
        });

JSON.stringify(cred) выглядит так:

{"username":"Test1234","password":"TestPassword!"}

person DeepToot    schedule 09.07.2016    source источник
comment
Можете ли вы поделиться, как выглядит JSON.stringify(cred)?   -  person Ozan Gunceler    schedule 10.07.2016
comment
@OzanGunceler - я обновил свой вопрос этой информацией. Спасибо за время.   -  person DeepToot    schedule 10.07.2016
comment
Вы пытались удалить JSON.stringify? Установить данные непосредственно в объект Cred   -  person Ozan Gunceler    schedule 10.07.2016
comment
Я не. Я могу попробовать это очень быстро, но я подтвердил, что мой метод wcf возвращает только строку, которая работает, как и ожидалось. Только когда я возвращаю HttpResponseMessage, происходит сбой. Любая причина, по которой мои входящие данные должны измениться?   -  person DeepToot    schedule 10.07.2016
comment
Интересно, что это вернуло 500 вместо сброса соединения ... 500 было связано с «DeserializationFailed»: «Форматировщик выдал исключение при попытке десериализации сообщения: ошибка в десериализации тела сообщения запроса для операции «Вход». Обнаружен неожиданный символ «u».   -  person DeepToot    schedule 10.07.2016
comment
Я думаю, ваше решение здесь: stackoverflow.com/a/32671585/4848251   -  person Ozan Gunceler    schedule 10.07.2016
comment
@OzanGunceler Я ценю время, потраченное на это. Я проверил другую страницу и не смог найти там ничего, что помогло бы. Я попытался установить свой UriTemplate в своем веб-сервисе на «/login/?username={username}&password={password}», и он снова начал выдавать мне исключение сброса соединения. Я также попытался настроить свой URL-адрес ajax, чтобы имитировать веб-службу Uri.. удалил это поле данных в ajax.. затем вернул его.. вернул строку для данных, а затем снова удалил его. Пока ничего не сработало.   -  person DeepToot    schedule 10.07.2016