Вызов $.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;
}
Я подтвердил, что при переключении обратно на строку работает как положено. Может кто-то пролить свет на то, что может происходить?
Благодарю.
РЕДАКТИРОВАТЬ: Вот как выглядит мой объект "кредит" и как он был создан:
$('.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!"}
1 ответ
Пожалуйста, поместите этот код в файл web.config.
` <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webScriptEndpoint>
<standardEndpoint name="" crossDomainScriptAccessEnabled="true" />
</webScriptEndpoint>
</standardEndpoints>`