假设我发送这个简单的ajax请求(jquery):
$.ajax({
type: 'POST',
url: '/ajax/requestForm.php',
data: {'action':'request', 'language':'sk'},
complete: function(data){
alert(data);
}
});
在我的requestForm.php中,我有:
<?php echo 'Hello answer!'; ?>
什么警报()在浏览器中显示我:
[object Object]
我希望它显示:
你好答案!
有什么想法吗?
答案 0 :(得分:1)
将complete:
更改为success:
,这样可以获得所需的结果。
Complete是在请求完成时调用的函数(在执行成功和错误回调之后)。该函数传递两个参数:jqXHR(在jQuery 1.4.x,XMLHTTPRequest中)对象和一个对请求状态进行分类的字符串(“成功”,“未修改”,“错误”,“超时”,“中止”或“parsererror”)。这就是你得到一个返回对象的原因。
答案 1 :(得分:0)
你想要
alert(data.responseText);
答案 2 :(得分:0)
响应将在数据对象的responseText或responseXML属性中提供。
答案 3 :(得分:0)
你应该尝试:
$.ajax({
type: 'POST',
url: '/ajax/requestForm.php',
data: {'action':'request', 'language':'sk'},
success: function(data){
alert(data);
}
});
成功而不是完整,完整是关闭功能,比如删除微调器等。@ Jones是正确的,你应该返回xml,JSON,或者输出html有时可以用于迷你应用程序,但正如我认为你只是测试jQuery AJAX,你需要的是使用success属性来返回数据。
答案 4 :(得分:0)
我相信你应该在php脚本中输出“结构化”数据,比如json。 例如:
$output = array('message'=>'Hello answer!', 'otherdata'=>'Value of other data');
echo json_encode($output);
在jQuery中你应该这样做:
$.ajax({
type: 'POST',
dataType: 'json', //The type of data you're expecting to receive from the server
url: '/ajax/requestForm.php',
data: {'action':'request', 'language':'sk'},
success: function(response){
alert(response.message);
}
});
这应该产生预期的结果。
答案 5 :(得分:0)
$ .ajax()complete()第一个参数(data)是jqXHR个对象,而success()第一个参数(数据)也是请求的响应数据本身。
使用complete():
要从jqXHR访问回复数据,您需要阅读jqXHR.responseText
或jqXHR.responseXML
属性alert(jqXHR.responseText)
。
使用success():
简单的alert(data)
可以解决问题。
答案 6 :(得分:-1)
您应该使用success
代替complete
,然后尝试
dataType: 'html',
html :以纯文本形式返回HTML;包含的脚本标记在插入DOM时会被评估。
或
dataType: 'text',
文字:纯文字字符串。