Jquery ajax适用于Chrome和Safari,但不适用于IE8和Firefox
Jquery ajax works in Chrome and Safari, but not in IE8 and Firefox
$.ajax({
type: "POST",
url: "core/login.php",
data: userInfo,
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success: function(msg){
if ($.trim(msg) == "success")
{
$('#status').load('home.php #status'); //refresh status: now shows as logged in
}
else
{
$('#error').html(msg); //this statement will execute whatever "$error" in login.php is, as html
$('#error').fadeIn(500).show();
}
}
});
基本上,我有一个网站的登录表单。php处理userInfo(包含用户名和密码),然后返回"success"或"error"。如果成功,则显示用户已登录,而不刷新页面(只是刷新一个div)。如果失败,不刷新页面,显示错误的问题/失败是什么。
在Chrome和Safari中,一切都很好。但是在IE8和Firefox中,当出现登录错误时,用户会被重定向到显示错误的新页面(但我希望用户留在同一页面上,因此我使用Ajax)。当显示成功时,不是刷新状态div并显示登录后的状态,而是在新页面上再次显示"成功"消息。
如何解决这个问题,使在所有浏览器中,在整个登录过程中没有刷新?非常感谢!
使用e.preventDefault()
防止触发默认动作。
的例子:
$("form").submit(function(e){
e.preventDefault();
$.ajax({
//ajax code here
});
});
这里是关于e.preventDefault
的更多信息http://api.jquery.com/event.preventdefault/
查看stackoverflow上的答案…
event.preventDefault()函数在IE中不起作用
相关文章:
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- JavaScript不显示剩余字符,但适用于其他页面
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 为什么这只适用于身体部分而不是头部
- 为什么不't此正则表达式适用于重复出现的对
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- JavaScript 位置适用于本地主机而不是服务器
- Rally App SDK 2.0:Rallymultiobjectpicker,适用于不显示displayField的
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- Angular.js - 控制器不为索引执行,适用于其余模板
- D3 .on 更改适用于文本而不是图表
- Zillow 数据 - json_encode不起作用 - 适用于常规变量
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- Phonegap Android项目适用于模拟器,而不是实际的手机
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- AngularJS:ng-单击不起作用,适用于<按钮>
- Javascript不会在移动设备上加载.适用于桌面
- 为什么我的代码适用于高度:100px,而不是高度:100%
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 哪些限制适用于不透明响应