T0w*_*tuM 7 html javascript php ajax jquery
我正在尝试使用jquery ajax调用将用户添加到数据库.用户可以很好地添加到数据库中,但是ajax总是返回错误.我不知道如何检索特定的错误.下面是我的代码,表单,php和jquery.
这是jquery
$(document).ready(function() {
//ajax call for all forms.
$('.button').click(function() {
var form = $(this).closest('form');
$.ajax({
type: "POST",
url: form.attr('data'),
dataType: 'json',
data: form.serialize(),
success: function (response) {
alert('something');
},
error: function() {
alert('fail');
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
这是PHP
<?php
include 'class_lib.php';
if(isset($_POST['username'])) {
$user = new Users;
$user->cleanInput($_POST['username'], $_POST['password']);
if($user->insertUser()) {
echo json_encode('true');
} else {
echo json_encode('false');
}
}
Run Code Online (Sandbox Code Playgroud)
这是HTML
<div id='newUser' class='tool'>
<h3>New User</h3>
<form method='post' name='newUser' data='../php/newUser.php'>
<span>Username</span><input type='text' name='username'><br>
<span>Password</span><input type='password' name='password'>
<input type='submit' name='submit' class='button' style='visibility: hidden'>
</form>
<span class='result'> </span>
</div>
Run Code Online (Sandbox Code Playgroud)
Vic*_*cer 28
@Musa,你刚才提到的
我的猜测是它的解析错误,尝试删除dataType:'json',看看它是否有效
你完全解决了我遇到的问题!我的ajax帖子请求与上面类似,它只是继续回到"错误"部分.虽然我使用firebug进行了检查,但状态为200(ok)并且没有错误.
删除'dataType:json'为我解决了这个问题.非常感谢!
我知道这是一个老问题,但我刚刚遇到了这样的奇怪情况(直接执行时 jquery ajax 返回成功,但附加到按钮时返回错误,即使服务器响应为 200 OK)
form并发现在标签内放置按钮会导致 JQuery 总是返回错误。只需更改form标签即可div解决问题。
我相信 JQuery 假设通信应该是形式编码的,即使你说它是application/json.
尝试将按钮移到表单外,看看会发生什么......
您应该指定状态代码 200 表示成功响应。
<?php
http_response_code(200);
?>
Run Code Online (Sandbox Code Playgroud)
请参阅此处: http: //php.net/manual/en/function.http-response-code.php