【发布时间】:2018-06-09 15:38:27
【问题描述】:
我已经尝试了互联网上的所有解决方案,但没有任何效果,所以要问问题。
我正在向返回 JSON 数据的 PHP 脚本发送 ajax 请求。
JSON 数据在 chrome 中完美显示,但在 firefox 和 safari 中显示 parseError。
AJAX 请求是:
$.ajax({
type: "POST",
url: "jjtest.php",
data: {"sId": sId},
dataType: "json",
success:function(msg){
console.log(msg);
},
error: function(jqXHR, textStatus, errorThrown){
console.log(errorThrown);
}
});
PHP 脚本是:
<?php
header('Content-type: application/json');
$sId = $_REQUEST['sId'];
include_once("DBConnection.php");
$stmt= $db->prepare("SELECT tName,time, timeleft FROM new_booking WHERE sId = ?");
$stmt->bind_param("s", $sId);
$stmt->execute();
$stmt->bind_result($teacherName, $timeleft, $time);
if ($stmt->fetch()){
$arr = array('teacher' => (string)$teacherName, 'time' => (string)$time, 'timeleft' => (string)$timeleft);
echo json_encode($arr);
}
$stmt->close();
?>
我已经尝试过:
- 向 php 添加内容类型
- 向 ajax 添加内容类型
- 将 async false 添加到 ajax
- 将缓存 true 添加到 ajax
- 将
JSON_FORCE_OBJECT添加到json_encode - 将所有字符串值传递给
json_encode - 从 ajax 中删除
dataType - 设置
dataType=text - 还有很多我忘记了
从 1.5 天开始挣扎。
更新:
FF中的错误是:
SyntaxError: JSON.parse: JSON 数据的第 2 行第 1 列的数据意外结束
但在 chrome 中,同样可以正常工作。
返回 JSON 响应是:
{
"teacher": "Lucy",
"time": "240",
"timeleft": "240"
}
所以,今晚请帮我睡个好觉
【问题讨论】:
-
错误说明了什么?
-
我更新了qstn,请看
-
是的,一样。适用于chrome,但不适用于FF。如果我设置 ajax 的 dataType 等于
text那么它显示在 FF 而不是 chrome -
@madflow 在哪里添加这些条件?成功了吗? ryt?我试试
标签: javascript php jquery ajax