0

我正在使用带有 Jquery 的 AJAX 调用到 PHP 表单:

$.ajax({
    type : 'POST',
    url : 'submit_form.php',
    dataType : 'json',
    data:  dataString ,

它使用以下方法对数据库中的结果进行编码:

echo json_encode($results);

但是,它将数据打印回进行 AJAX 调用的页面顶部,这完全破坏了 IE 中的功能,因为它在<html>声明之前返回文本字符串。

{"status":false,"msg":"Sorry The Queue is full"}<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

无论如何我可以在页面上抑制此回显功能,但仍将数据数组返回到我的页面,以便我可以使用(data.msg)之类的结果

4

3 回答 3

1

试着把它 : 放在header("Content-type: application/json");代码之前: echo json_encode($results);

最好的祝福...

于 2012-10-27T04:01:10.657 回答
0

对响应数据使用回调函数。回调将是一些处理接收到的数据的函数。它必须在全局范围内(AFAIK)。当服务器的响应准备好时,将调用该函数并处理数据。

// from the server:
someFunction({"status":false,"msg":"Sorry The Queue is full"});

// in your page, in a script tag, etc.
window["someFunction"] = function(result){
    // do something
}
于 2012-10-27T03:52:40.993 回答
0
$.ajax({
  type : 'POST',
    url : 'submit_form.php',
    dataType : 'json',
  success: function(data) {
   console.log(data);
});

试试这个。成功调用后,你会得到 js 对象的结果。检查控制台中的结果。

于 2012-10-27T04:00:55.663 回答