2011-10-20 4 views
1

У меня не сложилось долгое время, я потерял несколько рефлексов.Запрос Ajax с jQuery не работает

Может кто-нибудь мне помочь?

Согласно Google Chrome, то ничего не происходит, когда я нажимаю отправить:

HTML

<form> 
    <label for="title">Title :</label> 
     <input type="text" id="title" /> 
    <label for="comment">Comment :</label> 
     <input type="text" id="comment" /> 
    <label for="project">Project :</label> 
     <input type="text" id="project" /> 

    <input type="submit" value="Submit" /> 
</form> 

JavaScript

$(function(){ 
    $('form').submit(function(){ 
     return false; 
     $.ajax({ 
      type: 'POST', 
      url: 'http://support.foo.com/insert_bug.aspx', 
      data: 'username=mr%20dog&password=dog%3Ddog&short_desc=' + $('#title').val() + '&comment=' + $('#comment').val() + '&projectid=' + $('#project').val(), 
      success: function(msg){ 
       alert(msg); 
      } 
     }) 
    }); 
}); 

insert_bug.aspx

string username = Request["username"]; 
string password = Request["password"]; 
string short_desc = Request["short_desc"]; 
string comment = Request["comment"]; 
string projectid_string = Request["projectid"]; 

Если я отправлю URL-адрес из браузера, добавлена ​​ошибка.

+3

Ваша функция возвращает перед вызовом 'ajax' ... –

+0

@JamesAllardice: Мой плохой': x' Спасибо! –

ответ

4

Проблема заключается в том, что вы возвращение из обработчика событий submit до вашего вызова .ajax, а это значит, ваш вызов AJAX никогда даже не достиг. Вы можете переместить return заявление в конце тела функции:

$('form').submit(function(){ 
    //AJAX call... 
    return false; 
}); 

Или вы могли бы использовать preventDefault метод объекта события к тому же эффекту:

$('form').submit(function(e){ 
    e.preventDefault(); 
    //AJAX call... 
}); 
+0

Мой плохой ': x' Ваш ответ работает, конечно, спасибо. Но предупреждение (msg) не работает, а трекер Chrome не показывает никакой реакции, какой-либо идеи? Когда я отправляю url с моим браузером, я получаю строку «bugid: xx». –

+0

"XMLHttpRequest не может загрузить http://support.foo.com/insert_bug.aspx. Происхождение http: // localhost не разрешено Access-Control-Allow-Origin." –

+0

Google «та же политика происхождения». Страница, которая делает запрос, должна находиться в том же домене, что и страница, на которую отправляется запрос. –

1

Я удивлен, если что-нибудь случится в любом месте - вы возвращаете false из функции отправки, перед вызовом функции $.ajax. Try:

$(function(){ 
    $('form').submit(function(){ 
     $.ajax({ 
      type: 'POST', 
      url: 'http://support.foo.com/insert_bug.aspx', 
      data: 'username=mr%20dog&password=dog%3Ddog&short_desc=' + $('#title').val() + '&comment=' + $('#comment').val() + '&projectid=' + $('#project').val(), 
      success: function(msg){ 
       alert(msg); 
      } 
     }); 
     return false; 
    }); 
}); 
+0

My bad ': x' Спасибо! –

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