Jquery:$.ajax(json数据类型)有问题
我在刷新页面中的bloc时遇到问题 请求如下:Jquery:$.ajax(json数据类型)有问题,ajax,jquery,Ajax,Jquery,我在刷新页面中的bloc时遇到问题 请求如下: > $("#pwd_lost_link").click(function(){ alert('1'); $.ajax({ type : 'POST', url: 'test.php', dataType: 'json', data :{"nom" : "akbar"}, success : function(data){ $("#main_bloc")
> $("#pwd_lost_link").click(function(){
alert('1');
$.ajax({
type : 'POST',
url: 'test.php',
dataType: 'json',
data :{"nom" : "akbar"},
success : function(data){
$("#main_bloc").append(data.msg);
alert('2');
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
alert(errorThrown); }
}); })
这是php文件
<?php
$return['nom'] = "ffrfrfrfr";
echo json_encode($return)
?>
它不起作用。它会给我一个状态错误(0),页面会自动重新加载
谢谢
Michaël您试图访问
data.msg
,但您的PHP脚本只创建data.nom
。因此,data.msg
不存在。尝试将data.msg
更改为data.nom
,看看这是否符合您的要求。您试图访问data.msg
,但您的PHP脚本仅创建data.nom
。因此,data.msg
不存在。尝试将data.msg
更改为data.nom
,看看这是否符合您的要求。令人困惑的问题Michael,不确定“页面自动重新加载”是什么意思,但您应该做两件事:
在$.ajax()方法中,确保成功回调正确处理数据。您正在查找data.msg
,但我不知道.msg
来自何处
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
url: url,
success: function(data) {
// parse data object so you can see what's being returned ex. alert(data) or alert(data[0]) or alert(data.nom)
},
error: function (xhr, status, error) {
// XHR DOM reference: http://www.w3schools.com/dom/dom_http.asp
// check for errors ex. alert(xhr.statusText);
}
});
在PHP方面,您可能希望在那里进行调试,以查看接收到的内容和发送回的内容
除此之外,使用诸如Firebug或Chrome的内置实用程序(CTRL+SHIFT+I)之类的XHR查看器会非常有用
最后,如果pwd_lost_link
是一个link-elmenta id=“pwd_lost_link”href=“…”
,那么在处理AJAX之前,您必须停止浏览器跟随该链接
$("#pwd_lost_link").click(function(e) {
e.preventDefault();
alert('1');
$.ajax({
...
});
如果您没有看到“1”被提醒,那么这肯定是您的第一个问题。令人困惑的问题Michael,不确定“页面自动重新加载”是什么意思,但您应该做两件事: 在$.ajax()方法中,确保成功回调正确处理数据。您正在查找
data.msg
,但我不知道.msg
来自何处
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
url: url,
success: function(data) {
// parse data object so you can see what's being returned ex. alert(data) or alert(data[0]) or alert(data.nom)
},
error: function (xhr, status, error) {
// XHR DOM reference: http://www.w3schools.com/dom/dom_http.asp
// check for errors ex. alert(xhr.statusText);
}
});
在PHP方面,您可能希望在那里进行调试,以查看接收到的内容和发送回的内容
除此之外,使用诸如Firebug或Chrome的内置实用程序(CTRL+SHIFT+I)之类的XHR查看器会非常有用
最后,如果pwd_lost_link
是一个link-elmenta id=“pwd_lost_link”href=“…”
,那么在处理AJAX之前,您必须停止浏览器跟随该链接
$("#pwd_lost_link").click(function(e) {
e.preventDefault();
alert('1');
$.ajax({
...
});
如果您没有看到“1”被警告,那么这肯定是您的第一个问题。html/php文件的页面url是什么?使用Firebug或Chrome的调试器捕获您得到的HTTP响应。是200吗?它有正确的内容类型标题吗?嗨,谢谢你的回复。这是测试,是200。这是我的内容类型:内容类型text/html。我想我有办法了。我必须用json格式对数据进行编码?感谢您的html/php文件的页面url是什么?使用Firebug或Chrome的调试器捕获您得到的HTTP响应。是200吗?它有正确的内容类型标题吗?嗨,谢谢你的回复。这是测试,是200。这是我的内容类型:内容类型text/html。我想我有办法了。我必须用json格式对数据进行编码?谢谢。你是对的,这是一个错误,但不能解决我的问题。“警报(2)”从未显示。Thx。你是对的,这是一个错误,但不能解决我的问题。“警报(2)”从未显示。谢谢。这是默认的:)谢谢。这是默认值:)