2016-12-21 6 views
0

Мне нужно добавить HTTP-заголовок для всех запросов Ajax (XHR) Wicket. Я попробовал следующее:Добавить HTTP-заголовок для запроса Wicket Ajax

$.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('X-My-Header', 'value'); 
    } 
}); 

и

$(document).ajaxSend(function(e, xhr, options) { 
    xhr.setRequestHeader('X-My-Header', 'value'); 
}); 

Это не работает.

Что я не так понял?

Как я могу это решить?

РЕШЕНИЕ

Калитка использует свой собственный материал для регистрации глобальных слушателей.

Wicket.Event.subscribe('/ajax/call/beforeSend', function(jqEvent, attributes, jqXHR, errorThrown, textStatus) { 
    jqXHR.setRequestHeader('X-My-Header', 'value'); 
}); 
+0

сама Калитка использует beforeSend(), чтобы установить тип содержимого: https://github.com/apache/wicket/blob/bcd55813b3afbccb5675096930aee6281c5cba3a/wicket-core /src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js#L682. Однако он использует локальные настройки. Но ваш подход должен работать. Вы пытались отладить его? Вызывается функция? –

ответ

3

Я не знаю, почему ваши попытки не увенчались успехом, но калитка обеспечивает поддержку таких требований с AJAX глобальных слушателей. Поиск по пункту «Global слушателя» в этой главе:

https://ci.apache.org/projects/wicket/guide/7.x/guide/ajax.html#ajax_6

+0

Это потому, что Wicket использует собственные материалы для регистрации глобальных слушателей, см. Мое решение выше. Спасибо за вход! :) – baymon