Nano Hash - криптовалюты, майнинг, программирование

Как использовать javascript для добавления заголовка запроса перед загрузкой этой страницы

У меня есть 2 html-файла, принадлежащих двум разным контроллерам.

Это относится к действию Index в SignupController.

Индекс.html

<div class="signup-small-font pull-right"><a href="/Account/ResetPassword">Forgot password?</a></div>

При нажатии на эту ссылку он перейдет по этому URL-адресу и сделает запрос, чтобы получить представление о действии ResetPassword в AccountController и получить файл resetPAssword.html.

Теперь я хочу, чтобы перед тем, как сделать этот запрос, мне нужно добавить собственный заголовок в запрос для серверной части. Я использовал ajax javascript:

function appendHeader(urlCulture){

$.ajax({
    type: 'GET',
    url: urlCulture,
    headers: {
        "Culture": 'zh'
    },

})
}

Что мне делать в якорной ссылке index.html, чтобы вызвать эту функцию перед запросом resetPassword.html

Как и то, что я хочу, когда я нажимаю на него, он переходит к Account/Resetpassword и использует ответ, полученный из файла javascript, для рендеринга вместо обычного ответа.


Ответы:


1

В вашем html-файле

<div class="signup-small-font pull-right"><a onclick="appendHeader(urlCulture)" href="#">Forgot password?</a></div>

В вашем js

function appendHeader(urlCulture){
    $.ajax({
        type: 'GET',
        url: urlCulture,
        headers: {
            "Culture": 'zh'
        },
        success: function(res) {
            window.location = 'Account/ResetPassword';
        }

    })
}

Попробуйте. Я не совсем уверен, что это то, что вы хотите сделать.

29.06.2018
  • он говорил: «window.location не является функцией» 29.06.2018
  • Это должно быть window.location = Account/ResetPassword; 29.06.2018
  • У меня есть изменение в правильном месте, но теперь проблема заключается в том, что AccountController вызывается дважды, один раз с пользовательским заголовком, а после этого он вызывается один раз без него. 29.06.2018
  • Вы изменили значение href на #? 29.06.2018
  • да, я уже сделал это, но кажется, что, успешно установив для window.location значение Account/ResetPassword, он снова запускает действие в контроллере учетной записи. 29.06.2018

  • 2

    вы используете маршруты, вам нужно получить URL-адрес из функции javascript

    здесь есть пример этого: Получить локальное значение href из привязки (a ) тег

    можно сделать что-то подобное:

    <div class="signup-small-font pull-right"><a onclick="return appendCustomHeader(this);" href="/Account/ResetPassword">Forgot password?</a></div>
    

    в вашей функции js, как и в предыдущем ответе, вы можете сделать что-то вроде этого:

    function appendCustomHeader(element){
    
        var url = element.href; // to get full url 
    
        $.ajax({
            type: 'GET',
            url: url, 
            headers: {
                "CustomHeader": 'YourCustomHeader'
            },
            success: function(res) {
                // here you make anything else with your response
            }
        })
    
       return false;
    }
    

    Я не проверял это, я надеюсь, что это работает для вас.

    кажется, вы можете отключить перенаправление href, возвращающее false,

    видеть это:

    Как отключить HREF, если выполняется onclick?

    29.06.2018
  • Привет, этот подход каким-то образом также отправляет запрос дважды, один раз с заголовком и один раз без него 29.06.2018
  • Тогда работает href, то есть запрос без заголовка. Попробуйте использовать другое имя атрибута вместо href, я отредактировал ответ. Пожалуйста, посмотрите это. 29.06.2018
  • Если я перейду на route , он больше не будет переходить на эту страницу. Как и то, что я хочу, когда я нажимаю на него, он переходит к Account/Resetpassword и использует ответ, полученный из файла javascript, для рендеринга вместо обычного ответа. 29.06.2018
  • Я отредактировал. верните false, чтобы отключить перенаправление href, попробуйте. 29.06.2018
  • установка return false не приведет к переходу на эту страницу, хотя я все еще получаю правильный ответ. Это не то, чего я хочу. Итак, идея в том, что мне нужно перейти на эту страницу, но она отобразит страницу с ответом, полученным из файла javascript. 29.06.2018
  • на это есть ответ, см. его здесь: stackoverflow.com/questions/35236874/ кажется, что вы не можете редактировать заголовок при перенаправлении, вместо этого попробуйте использовать форму и отправить переменные по полям сообщения. 29.06.2018
  • Ой, это значит, что нет способа выполнить это 29.06.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..