AJAX只复制到url行
AJAX only copying to url line
我正在尝试创建一个登录系统。PHP不能用来发送数据到服务器,因为我需要在手机应用程序中运行它。似乎AJAX所做的只是在测试时更改浏览器窗口的URL,而没有向服务器发送任何内容。下面的代码。regformhash()只对密码进行散列。什么都没有。HTML:
<form action="#" id="registration_form">
Username: <input type='text' name='username' id='username' /><br>
Email: <input type="text" name="email" id="email" /><br>
Password: <input type="password" name="password" id="password"/><br>
Confirm password: <input type="password" name="confirmpwd" id="confirmpwd" /><br>
<input type="button" value="Register"
onclick="return regformhash(this.form,
this.form.username,
this.form.email,
this.form.password,
this.form.confirmpwd);" />
</form>
<p id="answerswer">Test</p>
脚本:
$('#registration_form').submit(function( event ) {
event.preventDefault();
var formData = $("#registration_form").serializeArray();
$.ajax({
url : 'register.php',
type : "POST",
data : formData,
success: function(data) {
alert("Yes" +data);// alert the data from the server
},
error: function() {
alert("No" + data);
}
});
});
PHP: $username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['p'];
$skips = 5;
echo "succes";
将函数调用放在表单提交处理程序上…
<form action="#" id="registration_form" onsubmit="return regformhash(...);">
Username: <input type='text' name='username' id='username' /><br>
Email: <input type="text" name="email" id="email" /><br>
Password: <input type="password" name="password" id="password"/><br>
Confirm password: <input type="password" name="confirmpwd" id="confirmpwd" /><br>
<input type="submit" value="Register" />
</form>
<p id="answerswer">Test</p>
这样,当函数返回false时,表单将中止提交。
另外,PHP在服务器端运行。Javascript是执行AJAX的东西。
HTML:
<form action="#" id="registration_form">
Username: <input type='text' name='username' id='username' /><br>
Email: <input type="text" name="email" id="email" /><br>
Password: <input type="password" name="password" id="password"/><br>
Confirm password: <input type="password" name="confirmpwd" id="confirmpwd" /><br>
<input type="submit" value="Register" />
</form>
<p id="answerswer">Test</p>
SCRIPT:
$('#registration_form').submit(function( event ) {
event.preventDefault();
var formData = $("#registration_form").serializeArray();
$.ajax({
url: "register.php",
type : "POST",
data : formData,
beforeSend: function( xhr ) {
return regformhash($('#registration_form'),$('#username'),$('#email'),$('#password'),$('#confirmpwd'));
}
})
.done(function( data ) {
alert("Yes" +data);// alert the data from the server
})
.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
您使用的success:
和error:
已弃用,请分别使用.done()
和.fail()
。
将您的函数添加到regformhash() beforeSubmit!让我知道它是否适合你!!
它'将值复制到url'的原因是因为您将表单作为GET请求发送。您的提交覆盖不起作用,因此正在使用正常的提交,这意味着在url中使用带有参数的GET。
在PHP端,您只检查POST参数,因此它看起来像是一个初始请求而不是回发。
我怀疑你真的需要ajax在这里,只要删除ajax的东西,使用一个普通的提交按钮,并把表单方法POST。
作为旁注,您没有包含'regformhash'函数,但是从名称判断,您正在尝试对密码进行散列。在客户端进行散列是没有意义的。任何攻击者都可以看到您的散列方法。哈希需要在服务器上完成。密码通常以明文形式发送。
相关文章:
- 复制当前url按钮-Javascript
- Google Script HtmlService,通过多个选项卡复制URL变量
- jqueryajax调用是复制url,当在模态视图之后在外部js文件中进行调用时
- 使用jquery防止在url中复制和粘贴
- AngularJS hashbang模式复制URL路径
- 复制URL并使用JavaScript / jquery粘贴到桌面,iOS和Android上的剪贴板按钮
- 如何使用不同的URL复制请求对象
- 任何检测用户何时高亮显示或复制全部/部分URL的方法
- 阻止用户从地址栏复制URL
- 将javascript保存到mysql数据库+复制数据URL
- 用户复制时更改Url
- 跨浏览器JS/jQuery将当前URL复制到剪贴板
- 如何从图像中复制URL's src属性转换为jQuery中的href属性
- Chrome扩展复制当前的URL和打开选项卡来执行操作
- Cordova / Javascript从URL复制图像到本地存储
- 如何将URL复制到表单中
- GET工作时,URL复制到地址栏,但不是通过AJAX
- 从远程url复制值
- 使用jQuery确定用户是否将完整的URL复制并粘贴到浏览器中
- 使用VBA从URL复制和粘贴