我試圖讓阿賈克斯的掛電話,我用的代碼:)Ajax調用總是返回錯誤,即使在成功調用
我保持甚至收到錯誤警報時調用一個基本的和平努力似乎是成功的。 我試圖調試代碼並添加了一些斷點,並注意到done函數會執行。 form-info已被寫出,並從php-script返回一個字符串。 對於短暫的文本確實出現,但在完成函數後消失。 調試時我沒有收到錯誤信息。它只會在正常運行腳本時出現。
任何幫助將不勝感激。
<div id="formDiv">
<form method="post" id="form">
<label for="title">Title: </label>
<input type="text" name="title" id="title" />
<label for="composer">Composer: </label>
<input type="text" name="composer" id="composer" />
<label for="link">Link: </label>
<input type="text" name="link" id="link" />
<label for="description">Description: </label>
<input type="text" name="description" id="description" />
<input type="submit">
</div>
<div id="outerDiv">
<p id="p"></p>
</div>
<script>
$("#form").submit(function(){
var postData = $(this).serializeArray();
$.ajax({
url: "test.php",
type: "POST",
data: postData,
dataType: "text"
})
.done(function(data){
$("#p").text(data);
})
.fail(function(){
alert("Error!");
});
});
</script>
test.php的
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'db');
if ($dbc->connect_error) {
die('Connect Error: ' . $dbc->connect_error);
}
$title = $_POST['title'];
$composer = $_POST['composer'];
$link = $_POST['link'];
$description= $_POST['description'];
$query = "INSERT INTO table(Titel, Componist, Link, Description) VALUES ('$title', '$composer', '$link', '$description')";
mysqli_query($dbc, $query);
$resultquery = mysqli_query($dbc,"SELECT * FROM table");
$result = "";
while($row = mysqli_fetch_assoc($resultquery)){
$result .= $row["Titel"]." | ".$row["Componist"]." | ".$row["Link"]." | ".$row["Description"]."\n";
}
echo $result;
mysqli_close($dbc);
?>
您是否觀察到瀏覽器控制檯中的請求/響應過程? – 2014-09-05 17:45:48
你很容易受到SQL注入攻擊。 – 2014-09-05 17:48:38
SQL注入攻擊:我知道。我只是嘗試一個簡單的功能。 – 2014-09-05 18:17:01