JQuery AJAX запрос Firebug Ошибка - PullRequest
       7

JQuery AJAX запрос Firebug Ошибка

1 голос
/ 23 сентября 2010

Я использую php / ajax для отправки формы без обновления страницы.Вот мои файлы -

coupon.js

jQuery(document).ready(function(){
        jQuery(".appnitro").submit( function(e) {
$.ajax({
            url     : "http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php",
            type    : "post",
            dataType: "json",
            data    : $(this).serialize(),
            success : function( data ) {
                        for(var id in data) {
                            jQuery('#' + id).html( data[id] );
                        }
                      }

        });
//return false or
e.preventDefault();

    });

});

sms.php

    <?php
    //process form
$res = "Message successfully delivered";
    $arr = array( 'mess' => $res );
    echo json_encode( $arr );//end sms processing
    unset ($_POST);
    ?>

и вот код для моей html-страницы -

<form id="smsform" class="appnitro" action="http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php" method="post">
...
</form>
<div id="mess" style="background:green;"></div>

Теперь, когда я нажимаю кнопку подтверждения, ничего не происходит, и firebug показывает следующее под панелью консоли -

POST http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php

404 Not Found 1.29s   `jquery.min.js (line 130)`

Response

Firebug needs to POST to the server to get this information for url:
http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php

This second POST can interfere with some sites. If you want to send the POST again, open a new tab in Firefox, use URL 'about:config', set boolean value 'extensions.firebug.allowDoublePost' to true
This value is reset every time you restart Firefox This problem will disappear when https://bugzilla.mozilla.org/show_bug.cgi?id=430155 is shipped

Когда я устанавливаю 'extensions.firebug.allowDoublePost' в true, тогда появляются следующие результаты -

POST http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php

404 Not Found 1.29s   `jquery.min.js (line 130)`

Response - 

{"mess":"Message successfully delivered"}

Может кто-нибудь помочь мне исправить эту ошибку Firebug 404 не найден.И почему он показывает jquery.min.js (line 130) вдоль стороны?

PS - не беспокойтесь о http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street это мой базовый URL

Ответы [ 2 ]

0 голосов
/ 25 сентября 2010

Когда внутри вызова Ajax это относится к объекту Ajax, вам нужно сделать это

var __this = this; 

Перед входом в вызов Ajax, это будет

data    : __this.serialize()

Или найдите использование контекста в вызове Ajax в Google. Или сериализуйте ваши данные в переменную перед тем, как перейти к вызову Ajax.

0 голосов
/ 23 сентября 2010

Возможно, вы захотите попробовать поместить оператор e.preventDefault () перед вызовом $ .ajax.

EDIT:

Мой x.html, соответствует вашей HTML-странице


<!DOCTYPE html>
<html>
<head>
<title>x</title>
<script 
  type="text/javascript" 
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
<script type="text/javascript" src="/so/x.js"></script>
</head>
<body>
<form id="smsform" class="appnitro" action="/so/x.php">
<input type="text" name="zz">
<input type="submit">
</form>
<div id="mess" style="background:green;"></div>
</body>
</html>

Мой x.js, соответствует вашему купону.js


jQuery(document).ready(function(){
  jQuery(".appnitro").submit( function(e) {
    e.preventDefault();
    $.ajax({
      url     : "/so/x.php",
      type    : "post",
      dataType: "json",
      data    : $(this).serialize(),
      success : function( data ) {
        for(var id in data) {
          jQuery('#' + id).html( data[id] );
        }
      }

    });
    //return false or
    //e.preventDefault();
  });
});

Мой x.php, соответствует вашему sms.php


<?php
$res = "Message successfully delivered.";
$arr = array('mess'=>$res);
echo json_encode($arr);
unset($_POST);
?>

Это на самом деле работает в моей среде, хотя у меня нет остальной части разметки HTML или дополнительного кода для обработки форм PHP. Сообщение успешно доставлено. отображается зеленым цветом непосредственно под полем ввода.

...