我在下面的jquery函数中有点卡住了。
情况如下:
1)我的php返回有效JSON
- 当我将$_POST
更改为$_GET
并手动通过网址传递数据时,我可以对此进行测试。
2)以下功能可以正常工作到$.ajax
部分。
3)该函数始终返回ready state 0
如果您需要更多数据,请与我们联系。浏览Stack Overflow和其他论坛的日子有助于洞察力,但我似乎无法修复我的实例。
//HTML
<form class="login-form" method="POST">
<input type="text" id="name" name="name" value="" placeholder="Username" required="yes">
<input type="password" id="pwd" name="pwd" value="" placeholder="Password" required="yes">
<input type="submit" id="login" name="login" value="Login" class="loginbutton" >
</form>
//JavaScript
$('#login').click(function(event)
{
//event.preventDefault();
var u = $('#name').val();
var p = $('#pwd').val();
console.log(u, p);
console.log("I am seeing this function?");
$.ajax({
contentType: "application/json; charset=utf-8",
cache: false,
type: "POST",
url: "functions/login.php",
data: {name:u, pwd:p},
datatype: "json",
error: function(msg)
{
console.log("RS - "+msg.readyState);
console.log(msg);
},
success: function(msg)
{
console.log("RS - "+msg.readyState);
console.log(msg);
$.each( msg, function( i, val ) {
console.log(val[0].session); //session is a variable in the json string
});
console.log("Success block");
}
});
});
答案 0 :(得分:0)
数据类型 - &gt; dataType问题,如果它没有帮助尝试&#39;文本&#39;类型。 也许php服务器会发送其他混乱的东西。
答案 1 :(得分:0)
event.preventDefault()
或return false
。引自w3schools
event.preventDefault()方法停止发生元素的默认操作。
因此,在我们的案例中,它会阻止表单发送。
这两项技术可防止事件冒泡。没有它们,表单将被发送到自身(脚本的地址),这将导致页面刷新并停止执行脚本。
您可以从readyState
函数中查看结果($.ajax()
),因为它比页面重新加载更快。