Получить URL-адрес в функции onSuccess Ajax-запроса - PullRequest
0 голосов
/ 13 октября 2011

Ниже приведен мой код для запроса Ajax:

 for(some loop) {
 var SOME-VARIABLE = value;
 new Ajax.Request(SERVER-PATH + SOME-VARIABLE, {
     asynchronous: true,
     method: 'get',
     onSuccess: function(response) {
     //here I require SOME-VARIABLE
     }
 }

Итак, я выполняю несколько запросов ajax в цикле, запрос работает отлично. Но я хочу значение переменной (SOME-VARIABLE) части URL запроса в соответствующем обратном вызове. Поскольку множественные запросы выполняются, в обратном вызове я не смог получить фактическое значение переменной (оно заменяется последующей итерацией цикла). Есть ли способ получить доступ к URL-пути запроса в объекте ответа функции Onsuccess .

Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Вы можете хранить НЕКОТОРЫЕ ПЕРЕМЕННЫЕ как собственность по вашему запросу:

new Ajax.Request(SERVER-PATH + SOME-VARIABLE, {
    asynchronous: true,
    method: 'get',
    options: {SOME-VARIABLE: SOME-VARIABLE},
    onSuccess: function(response, obj) {
        alert(obj.options.SOME-VARIALBE);
    }
}

EDIT: Получил эту работу, используя Extjs 3.1 и 4.0.2:

var myOption = 'asdf';
Ext.get('myButton').on('click', function(){
    Ext.Ajax.request({
        url: 'http://jsfiddle.net/',
        options: {myOp: myOption },
        success: function(res, obj) {
            alert(obj.options.myOp);
        },
        failure: function(res, obj) {
            alert(obj.options.myOp);
        }
    });
});
0 голосов
/ 13 октября 2011

Вьющиеся скобки не имеют области видимости в javasrcipt, но функции имеют.Оберните код в скобках функцией:

for(some loop) {
  var SOME-VARIABLE = value;
  (function(url) {
    new Ajax.Request(SERVER-PATH + url, {
      asynchronous: true,
      method: 'get',
      onSuccess: function(response) {
        //here You can access url
      }
    }
  }) (SOME-VARIABLE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...