2016-08-02 3 views
2

Я пытаюсь установить пользовательский заголовок с помощью pJax, чтобы я мог отображать объекты на стороне сервера. В pjax docs я могу использовать pjax:beforeSend для установки заголовков xhr.Как настроить пользовательский заголовок xhr с помощью PJAX?

Получение следующее сообщение об ошибке:

typeerror xhr.setrequestheader is not a function 

Код я пробовал:

$(document).on('pjax:beforeSend', function(xhr) { 
    if ($(event.target).data('rendertimeline') !== undefined) { 
     xhr.setRequestHeader('X-RENDERTIMELINE', 'true'); 
    } 
}); 

в основном, я хочу добавить атрибут данных к определенным ссылкам и связала бы проверить для этого атрибута , если он там, отправьте собственный HTTP-заголовок вместе со стандартным заголовком HTTP_X_PJAX. Казалось довольно простым, но я кое-что придумал.

+0

Вы пробовали регистрировать 'xhr', чтобы убедиться, что это действительно запрос? Я не знаком с обработкой jQuery XmlHttpRequests, но, возможно, вы не понимаете, что думаете. –

ответ

1

Похоже, вы начали использовать PJAX недавно первый аргумент не XHR, но событие объекта добавить, что и он должен work.Don't знать, почему они пропустили его в документации, но большинство событий, как начало, конец и т.д. будут иметь событие как их первый аргумент.

$(document).on('pjax:beforeSend', function(event,xhr, options) 
+0

Думаю, ты на правильном пути. Теперь, когда я смотрю на свой код, я вижу, что я использую 'event' без аргумента события, однако заголовок все еще не настроен даже после добавления события в список аргументов. Если я добавлю, если я добавлю код setRequestHeader к параметрам pJax.beforeSend (строка 206 в jquery.pjax.js) - он отлично работает. Любая причина, по которой он не может быть вызван из моего собственного скрипта, но работает из библиотеки ? – KFE

+0

Это должно сработать. Он всегда работал для меня – Viney