非常に小さな jquery ajax スニペットを作成するのに 2 時間を費やしましたが、これは機能せず、頭がおかしくなりました。何かが間違っていて、私はそれを見つけることができませんか? これをデバッグする方法が実際にはわかりません:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$('#subForm').submit(function (e) {
$.ajax({
url: 'subscribe.php',
type: 'GET',
data: "id = " + 2, //EDIT: I have changed this to "id=2", but also not working
success: function(result){
alert("token recieved: " + result);
},
error: function() {
alert('Error occured!')
},
});
});
});
</script>
subscribe.php は、直接呼び出された場合に機能します。
<?php
include "conf.php";
$email = 'test';
$query = 'INSERT INTO subscribers(email) VALUES("'.$email.'")';
mysql_query($query);
echo 'Success';
exit;
?>
これにより、「エラーが発生しました!」というテキストが表示されます。その後、ページは「subscribe.php」にリダイレクトされます。最初に getjson を呼び出しましたが、うまくいかず、.ajax get に変更することにしました。
1) なぜエラーが発生するのですか?
2) その後 - エラーであっても、ユーザーが subscribe.php にリダイレクトされるのはなぜですか。これは ajax であり、ユーザーが同じページにとどまらないのはなぜですか?
EDIT return false を追加すると、ユーザーは subscribe.php にリダイレクトされません。これで解決です。
これは、データ「id=2」を変更することで解決されます。