Как использовать JavaScript для добавления заголовка запроса перед загрузкой этой страницы - PullRequest
0 голосов
/ 29 июня 2018

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

Это относится к действию Index для RegistrationController

Index.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, вместо обычного ответа

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

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

здесь есть пример этого: Получить локальное значение href из тега anchor (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?

0 голосов
/ 29 июня 2018

В вашем 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';
        }

    })
}

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

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