Я использую AJAX Get. Ответ в контроллере правильный, но в ajax get return 404 error - PullRequest
0 голосов
/ 02 июля 2018

Java-скрипт:

function LogOn() {

var sendData = "userName=" + UserName.value + "&password=" + Password.value + "&isRemember=" + isRemember.checked;

$.get('../Account/LogIn', sendData, function (Data, status, jqXHR) {

    if (Data.IsSuccess == 1) {
       alert('ok');
    }
}, 'Json').fail(function () {
    MessageError.removeAttribute('hidden');
    MessageError.innerHTML = "خطای سمت سرور ";
})
}

в контроллере httpclient возвращает правильный результат. но когда javascript ajax возвращает resoinse, возвращает ошибку 404. Счет контроллера:

public ActionResult LogIn()
{
    int isSuccess = 1;
    object _Result = null;

    try 
    { 
        HttpClientHandler handler = new HttpClientHandler()
        {
            AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
        };

        var client = new HttpClient(handler);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        string username = Request["userName"].ToString();
        string password = Request["password"].ToString();
        string encryptPass = JJorianClassLibrery.DLL.Encryptions.Encrypt(password, Entity.EncryptKey);

        bool isRemember = bool.Parse(Request["isRemember"]);

        var response = client.GetAsync(GetBaseUrl() + "api/v1/User/Login/" + username + "/" + encryptPass).Result;

        if (response.IsSuccessStatusCode)
        {
            isSuccess = 1;
            var result = response.Content.ReadAsStringAsync().Result;
            _Result = result;
        }
        else
        {
            _Result = "نام کاربری یا کلمه عبور نادرست است";
            isSuccess = 0;
        }
    }
    catch
    {
        isSuccess = 0;
        _Result = "عملیات ورود با موفقیت انجام نشد";
    }

    return Json(new { IsSuccess = isSuccess, Message = _Result }, JsonRequestBehavior.AllowGet);
}

в ответе контроллера верен и возвращает json результата, но при передаче результата в javascript, получить ответ ajax ret равен 404 (не найдено) ...

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Я думаю, что это очень просто, ваша ссылка на контроллер неверна ...

попробуйте это:

$.get('/Account/LogIn', sendData, function (Data, status, jqXHR)
0 голосов
/ 02 июля 2018

ошибка 404 означает, что вызов ajax не нашел контроллер.

$.get('../Account/LogIn', sendData, function (Data, status, jqXHR)

Вы уверены ('../Account/LogIn') правильно? возможно, вам понадобится расширение файла (.php, .js и т. д.) или, например, полный путь к файлу ('http://yourdomain.com/Account/LogIn.php')

надеюсь, что это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...