Я пытаюсь проверить, существует ли в базе данных адрес электронной почты. У меня есть внешний файл JavaScript, который я использую для вызова моего jQuery (чтобы мой взгляд был чистым). Возможно, это потому, что я работаю с включенным SSL? (Я использую HTTPS)AJAX вызов внешнего файла JavaScript, не достигнув ActionResult в контроллере
Функция внешнего JS файла:
function checkemail() {
var email = $("#email").val();
$.ajax({
url: "/Account/CheckEmailExists/",
data: JSON.stringify({ p: email }),
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data)
}
});
}
Действие в контроллере:
public ActionResult CheckEmailExists(string p)
{
bool bEmailExists = false;
using (RBotEntities EF = new RBotEntities())
{
var query = (from U in EF.AspNetUsers
where U.Email == p
select U).FirstOrDefault();
if(query.Email != null)
{
bEmailExists = true;
}
else
{
bEmailExists = false;
}
}
return Json(bEmailExists, JsonRequestBehavior.AllowGet);
}
Кажется, я получаю сообщение об ошибке с указанием следующей:
XML Parsing Error: no root element found Location: https://localhost:44347/Account/CheckEmailExists/ Line Number 1, Column 1:
Мое понимание было бы в том, что этого ActionResult
не существует. Но это так?
Я что-то не так, или есть причина, по которой ActionResult
не может быть вызван через внешний файл JavaScript?
Ваш контроллер получает запрос, но читает его как XML. Какую версию ASP.NET вы используете? MVC2 не имеет встроенной поддержки json, а MVC3. – KarelG
Я использую MVC 5 – AxleWack