2013-05-22 2 views
1

У меня есть простой AJAX пост на сервер ..Ajax успеха не удается инициировать

$(".invite-team-members-submit-btn").click(function() { 
    $.post("invite_team_member", { token: $("#token").val(), email: $("#email").val(), team: $("#team").val() }) 
    .done(function (responseText) { 
     responseText = jQuery.parseJSON(responseText); 
     alert(responseText.response); 
    }) 
    .fail(function (data) { alert("ERROR: " + data); }) 
    .then(function() { alert("Something should happen."); }); 
}); 

JSON возвращенное выглядит следующим образом ...

{"response":"Person has been invited."} 

Мой заголовок ответа в консоли выглядит это ...

Response Headers 
    Cache-Control max-age=0, private, must-revalidate 
    Connection close 
    Content-Type application/json; charset=utf-8 
    Date Wed, 22 May 2013 21:45:07 GMT 
    Etag "e5b5e12acbcc78372b2a861027b66c05" 
    Status 200 OK 
    Transfer-Encoding chunked 
    X-Request-Id d835ce021eff7733d67ebfcdd468bdf2 
    X-Runtime 0.007909 
    x-ua-compatible IE=Edge 

В моей консоли я вижу, что это сервер и вернул соответствующий текст, но я не получаю предупреждение i n мой браузер. Я просто не понимаю, что случилось. Обновлен ли jQuery то, что мне не хватает?

+0

попробовать поворот на поджигатель на светлячок. проверьте, есть ли действительный ответ. – iCodeLikeImDrunk

+0

Сделал так и опубликовал детали в своем ответе. – jason328

+0

Вы могли бы опубликовать предложенный нами аякс-код? – iCodeLikeImDrunk

ответ

6

Вы используете $.post неправильно. Вы хотите использовать $.ajax и указать свойство type: "post".

$.post Первый аргумент - это URL. В вашем случае это объект. Я думаю, что, возможно, jQuery в конечном итоге использует текущий URL страницы, чтобы вместо этого сделать запрос (именно поэтому вы его видите), но я не могу быть уверен. Вы можете переписать это так:

$.post("invite_team_member", {data: data}) 
    .done(function (responseText) { alert(responseText); }) 
    .fail(function (data) { alert("ERROR: " + data); }); 
+0

Я обновил свой код в соответствии с вашим ответом, но я все еще не получаю предупреждение. Возможно, это проблема в конце концов. – jason328

+0

@ jason328, если вы не получаете предупреждение «.fail», либо это значит, что запрос даже не работает. Я думаю. Что делать, если вы добавите '. Then' после предупреждения? –

+0

Все то же самое, без предупреждения. Если ничего не работает, как я получаю ответ из журнала консоли, сообщая мне, что я отправил правильный запрос на сервер? Я дважды проверял, и мой сервер работает правильно. – jason328

1

использования $.ajax() затем установите тип в "POST"

+0

Имел так и остается тот же результат, без предупреждения. – jason328

1

Попробуйте этот код:

mydata = "name=Jon&location=USA"; 
$.ajax({ 
    type : 'POST', 
    url : 'myphp.php', 
    data : mydata    
}).done(function(msg){ 
    alert("DONE"); 
}); 
Смежные вопросы