- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是通过 ajax 执行一个简单的登录脚本。
我在其他地方的 javascript 方面使用了相同的脚本,效果很好,但这似乎不适用于我现在尝试的内容。
所以,我用它来返回:
$return['loginSuccess'] = true;
echo json_encode($return);
然后捕获返回:
if (response.loginSuccess === true) {
window.location = "index.php";
} else {
// error
}
但是,发送返回后没有任何反应。我已经删除了javascript端,并且login.php页面显示它正在发送loginSuccess = True的响应。
不明白为什么它可以在其他脚本上工作,但没有任何反应。
这里是完整的 JavaScript(我已经删除了验证以使其更短):
// JavaScript - Login AJAX
$(document).ready(function(){
// When the form is submitted
$('.loginbutton').click(function(){
var check = true;
// Get the values
var usernamelogin = $('.logininputuser').val();
var passwordlogin = $('.logininputpass').val();
// Database validation checks
if (check === true) {
$.ajax({
type: "POST",
url: "process/login.php",
data: $(".formlogin").serialize(),
dataType: "json",
success: function(response){
if (response.loginSuccess === true) {
window.location = "index.php";
} else {
// error
}
}
});
}
return false;
});
});
还有 php:
<?php
header('Content-Type: application/json');
require("../common.php");
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if(!empty($_POST['loginbutton'])) {
$query = " SELECT id, username, password, salt, email FROM users WHERE username = :username ";
// Create bound values
$query_params = array(
':username' => $_POST['username']
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$login_ok = false;
$row = $stmt->fetch();
if($row)
{
$check_password = hash('sha256', $_POST['password'] . $row['salt']);
for($round = 0; $round < 65536; $round++)
{
$check_password = hash('sha256', $check_password . $row['salt']);
}
if($check_password === $row['password'])
{
$login_ok = true;
}
}
// Sucsess for login
if($login_ok)
{
unset($row['salt']);
unset($row['password']);
$_SESSION['user'] = $_POST['username'];
$_SESSION['logged'] = "1";
$return['loginSuccess'] = true;
echo json_encode($return);
}
else
{
die();
}
} else if(!empty($_POST['regbutton'])) {
header( 'Location: ../register.php' ) ;
}
}
?>
很抱歉问了这么长的问题,不确定是否可以看出这段代码有什么问题,但如果可以的话,感谢您的帮助。
最佳答案
我认为你还没有解码 json 编码的字符串,所以它不起作用。试试这个代码。
var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" )
其中 '{ "name": "John"}' 是您的回复。
更多引用,http://api.jquery.com/jQuery.parseJSON/或 Decode JSON with jQuery / AJAX
关于javascript - JSON 返回不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647120/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!