2013-10-04 1 views
0

Я очень новичок в jQuery и веб-разработке. Я бы предпочел не использовать Javascript и PHP (мне не нравятся языки, подобные им), но мне нужно что-то сделать в jQuery. Вот мой код:JQuery как бороться до отправки

$.ajax({ 
    url:some_url, 
    dataType:"json", 
    data:some_data_in_json, 
    success : function(response){ 
    }, 
    error : function(xhr){ 
    } , 
}); 

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

$.ajax({ 
    url:some_url, 
    dataType:"json", 
    data:some_data_in_json, 
    beforeSend: function() { 
     console.log('before executed'); 
     alert('do sth'); 
    }, 
    success : function(response){ 
    }, 
    error : function(xhr){ 
    } , 
}); 

Но это Безразлично ничего не делай. Как в jQuery я могу узнать, изменил ли я что-то, что он был изменен? Я попробовал использовать Firebug. EDIT BTW у меня есть JQuery 1.3.2, может быть, это скажет вам больше, потому что мои знания о веб-devolpment 0

EDIT some_url, some_data_in_json не являются переменными. Я написал только пример.

+1

JQuery является Lib JavaScript, FYI :) – tymeJV

+0

Остерегайтесь этих посторонних запятых после функций 'error()' в обоих вызовах AJAX. – Bucket

+0

Это пример. Я знал, что jQuery - это JS lib. Вот почему у меня проблема, потому что я вынужден использовать технологии, которые мне не нравятся вообще. Я не понимаю, почему люди используют JS – Luffy

ответ

2

Определены ли ваши переменные? Я подозреваю, что строка dataType:json, должна читать dataType:'json', - строку вместо имени переменной.


beforeSend является "A pre-request callback function that can be used to modify the jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object before it is sent." Хотя он должен работать с указанным исправлением, это на самом деле не собирается делать то, что вы пытаетесь сделать.

Поскольку alert является синхронным событие, вы можете просто положить его перед вызовом AJAX и AJAX не будет происходить до тех пор, пока тревога уволен:

console.log('before executed'); 
alert('do sth'); 
$.ajax({ 
    url:some_url, 
    dataType:json, 
    data:some_data_in_json, 
    success : function(response){ 
    }, 
    error : function(xhr){ 
    } , 
}); 
+0

Я попытался сделать это раньше, но я не вижу предупреждения и ничего в консоли. Когда я использую firebug. BTW У меня есть jquery 1.3.2 – Luffy

+0

'$ .ajax' изменил LOT с версии 1.3. Вы должны попытаться получить более актуальную версию. [Документы] (http://api.jquery.com/jQuery.ajax/) также говорят, что «Начиная с jQuery 1.5 опция' beforeSend' будет вызываться независимо от типа запроса », поэтому извлечение кода от 'beforeSend' полностью, вероятно, является лучшим решением. – Blazemonger

+0

ok thx. Я не могу использовать jQuery 1.5:/ Я попробую написать простейший код самостоятельно, чтобы узнать, как он работает. И это должно мне помочь. – Luffy

Смежные вопросы