Ошибка «404 - файл или каталог не найден» в мобильном браузере в ASP.NET MVC 5 с веб-API - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь выполнить аутентификацию на основе токенов в ASP.NET MVC 5. Все работает в браузере ПК (страница входа в систему, страница регистрации, страница данных).

Вот код сценария входа в систему

<script type="text/javascript">
$(document).ready(function () {
    $('#btnSignIn').click(function () {
        var loginData = {
            grant_type: 'password',
            username: $('#txtSignInEmail').val(),
            password: $('#txtSignInPassword').val()
        };

        $.ajax({
            type: 'POST',
            url: 'Token',
            data: loginData
        }).done(function (data) {

            $('#user').text(data.userName)
            $('#UserName').text(JSON.stringify(data.userName));

            localStorage.setItem('accessToken', data.access_token);
            localStorage.setItem('qubaUserName', JSON.stringify(data.userName));
        }).fail(function (showError) {
            $('#signInError').text(JSON.stringify(showError));
        });
    });
})
</script>

Когда я пытаюсь войти в систему на моем компьютере, он успешно вошел в систему.

Но на моем мобильном телефоне отображается ошибка, как показано на скриншоте.

Обновление

Это только на мобильном браузере Chrome.Я проверил с Mozilla, и он показывает именно то, что я ожидаю

Mobile Chrome Error

ОБНОВЛЕНИЕ

ЕслиЯ делаю url:'Token', он работает на локальной машине и браузере Mozilla в Android, но не на любом другом ПК (как Chrome и Mozilla), так и Android (браузер Chrome)

при URL: 'Token'

отправляет запрос с локального компьютера по этой ссылке http://localhost/ProjectName/Token

Но отправляет запрос из другого браузера ПК и браузера Android Chrome, например http://localhost/Token

Если я изменяю URL:'ProjectName/Token', не работающий на локальном ПК (где я развернул на IIS), но он работает во всех браузерах Android (chrome и Mozilla) и других ПК

когда URL: 'ProjectName / Token'

делает запрос от локального компьютера по этой ссылке http://localhost/ProjectName/ProjectName/Token

Но этоотправляет запрос из другого ПК-браузера и браузера Android Chrome, например http://localhost/ProjectName/Token

Итак, как мне сделать общий URL-адрес для всех клиентов (как локальных, так и удаленных)

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Измените URL-адрес на абсолютный, указав / в начале.

"/ProjectName/Token"

Он определенно будет указывать на http://localhost/ProjectName/Token независимо от того, с какого URL-адреса вызывается ваш js-скрипт.

0 голосов
/ 04 марта 2019

$. Ajax ({тип: 'POST', url: 'Token',

изменить этот токен URL на / token или полный путь

...