我希望有人能夠幫助這一點,我有一個形式signup.php與AJAX是POST到另一個頁面register.php。我無法從在register.php文件中調用的函數獲得json響應。我將函數的結果編碼在register.php文件中,但註冊完成後沒有任何內容顯示出來。我在瀏覽器上設置了調試器以遵循網絡響應,出於某種原因,頭文件content-type是text/html,不知道是否是問題所在。JSON:響應不過來
我想要做的是在成功顯示來自該功能的響應,但它不工作。這是我目前的代碼。
signup.php
<script>
$(document).ready(function()
{
$("#submit").click(function()
{
var formData = $("#signup").serializeArray();
$.ajax(
{
type: "POST",
url: "../pages/register.php",
cache: false,
dataType: 'json',
data: formData,
success: function(response) {
$('#message').html(response);
}
});
return false;
});
});
</script>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="inline">
<h1>Carelincs</h1>
</div>
<div data-role="content" data-theme="a">
<form action="" method="POST" id="signup">
<label for="email">Email:</label>
<input type="email" name="email" placeholder="eMail"/>
<br />
<label for="username">Username:</label>
<input type="text" name="username" placeholder="User Name"/>
<br />
<label for="password">Password:</label>
<input type="password" name="password" placeholder="Password"/>
<br />
<label for="confirm password">Confirm Password</label>
<input type="password" name="repeatpassword" placeholder="Confirm Password"/>
<br />
<button type="submit" id="submit">Submit</button>
</form>
<p id="message"></p>
<div data-role="popup" id="validate" class="">
<p>Account created! Activation email has been sent, check your email.</p>
</div>
</div>
</div>
register.php
<?php
require_once("../auth/config.class.php");
require_once("../auth/auth.class.php");
$config = new Config;
$dbh = new PDO("mysql:host=" . $config-> dbhost . ";dbname=" . $config->dbname, $config->dbuser, $config->dbpass);
$auth = new Auth($dbh, $config);
$email = $_POST["email"];
$username = $_POST["username"];
$password = $_POST["password"];
$repeatpassword = $_POST["repeatpassword"];
$register = $auth->register($email, $username, $password, $repeatpassword);
// Temporary just so you can see what's going on :
echo json_encode($register);
?>
什麼'response'包含JSON數據,你做了'的console.log (響應);'?如果它是一個對象,你不能在'.html()'中使用它。 – jeroen 2014-09-02 01:02:34
在輸出你的JSON之前,嘗試'header('Content-Type:application/json')',因爲AJAX方法會顯式地說你期待它,所以它會查找它:'dataType:'json','。 – 2014-09-02 01:02:47
同時檢查AJAX調用中的「錯誤」。如果你的東西不能被翻譯成JSON,jQuery會錯誤地調用該函數。 console.log()也是如此。 – Robbie 2014-09-02 01:27:59