我想創建一個非常簡單的登錄窗體使用AJAX服務器通信和PHP作爲服務器端腳本。 作爲一個起點,我只是試圖通過JSON發送登錄數據到服務器,但它已經給我提出了問題。在JSON登錄AJAX POST請求
問題是,當我通過AJAX的POST請求發送數據時,我的服務器似乎沒有得到任何東西,根本沒有返回任何數據。 下面是請求的HTML:
<!DOCTYPE HTML>
<html>
<head>
<title> Login experiment </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function AjaxJSON() {
$("form#loginForm").submit(function() {
var username = $('#username').val();
var password = $('#password').val();
var jsonlogin = "{\"username\" : \"" + username + "\" , \"password\" : \"" + password + "\"}";
var str = 'json=' + jsonlogin;
$.ajax({
type: 'POST',
url: 'login.php',
// URL of my PHP script
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: str,
success: function(data) {
alert("Data received!" + data);
}
});
// ajax
})
})
</script>
</head>
<body>
<h1> LOGIN: </h1>
<form id="loginForm" name="loginForm" method="post" action="">
<input type="text" id="username" name="username"> USERNAME <br>
<input type="password" id="password" name="password"> PASSWORD <br>
<input type="submit" class="button positive">
</form>
</body>
</html>
此HTML代碼應該只需發送一個JSON字符串到PHP腳本編碼申請表(用戶名+密碼)。 劇本是這樣的:
<?php
$result = json_decode($_POST['json']);
echo $result->username;
echo " ";
echo $result->password;
?>
爲什麼它不給我任何答覆? 預先感謝您的幫助:)
不要嘗試通過將字符串混合在一起來構建JSON。瀏覽器有'JSON.stringify' – Quentin