Как добавить параметры в каждый запрос ajax? - PullRequest
1 голос
/ 04 августа 2011

Я занимаюсь разработкой одностраничного веб-приложения с использованием dojo и Java EE.

упрощенная архитектура

Клиентские скрипты обмениваются данными с бэкэндом, используя dojox.data.JsonRestStore.

Я хочу прикрепить идентификатор сеанса к каждому AJAX-запросу.

Я знаю, что вы можете добиться этого в JQuery с помощью настройки ajax

$.ajaxSetup({
    beforeSend: function() {
       //add parameters to request...
    }
});

Есть ли способ настроить dojo аналогичным образом?

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Я не думаю, что есть явная зацепка, чтобы включить это, к сожалению.Один из способов обойти это (не проверено и не слишком красиво, но должно делать то, что вы хотите):

define("my.xhr_fixer", ["dojo/xhr"], function(dojo){

(function() {
    dojo._xhr_orig = dojo.xhr;
    dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){
        args = args || {};
        args.content = args.content || {};

        args.content['sessionId'] = mySessionId;

        return dojo._xhr_orig.apply(this, arguments);
    }
})();
});
0 голосов
/ 30 июня 2016

Вы можете по аналогии jQuery.beforeSend перехватить Dojo XHR-сообщение «отправить» и изменить параметры запроса:

require([
    "dojo/request/notify",
    "dojo/cookie"
], function (notify, cookie) {
    notify("send", function (response, cancel) {
        response.xhr.setRequestHeader('X-CSRFToken', cookie("csrftoken"));
    });
});
0 голосов
/ 04 августа 2011

Поместите это в URL:

$.ajaxSetup({
    url: "/yourcode?sessionId=" + sessionId;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...