AJAX xhr.responseText返回整个html

时间:2016-06-08 14:56:14

标签: javascript php jquery json ajax

首先我在php中回显我的数据,我用非常简单的数据尝试过,比如:

my_string_list = ['1.0', '1.20798878439', '1.52379907139']
my_int_list = []
for item in my_string_list:
    my_int_list.append(float(item))

然后我尝试在我的ajax调用中捕获它我之前为该php编写的(并且正在工作):

echo json_encode(array("one" => "something"));

但我每次都会收到JSON.parse()的语法错误:

  

未捕获的SyntaxError:意外的令牌<在位置0的JSON中

所以我刚刚注销了succcess: function (xhr,data) { var something = JSON.parse(data); console.log(something); } "数据"是,它返回页面的整个html

如果我退出 xhr (应该包含我认为的html),我明白了:

  

XMLHttpRequest {onreadystatechange:null,readyState:4,timeout:0,   withCredentials:false,upload:XMLHttpRequestUpload ...}

我想只返回json编码的数据,而不是整个html。

提前感谢您的回答。

编辑: 问题是这个php在php语句之前生成了html内容,它等同于echo语句,因此ajax无法将其与我想发送的数据区分开来。我做了另一个php文件来完成这个任务,现在它正常工作。

1 个答案:

答案 0 :(得分:0)

在php响应中添加一个包含Content-type

的标题
header('Content-type: application/json; charset=UTF-8');
echo json_encode(array("one" => "something"));