JQuery使用ajax/json错误.语法错误
JQuery error using ajax/json. Syntax Error?
首先我应该说这是我第一天使用AJAX,所以我为我的愚蠢道歉。
我使用JQuery 1.8.2和PHP5,填充一个页面的数据。
这是我的javascript函数:function requestData(dataType) {
$.ajax({
type: 'POST',
datatype: 'json',
error: function(obj, txt, err){alert('error:' + txt + ', Thrown' + err);},
url: 'charts/plotLiveData.php?dataType='+dataType+'&sid=3868&pos=2&start=1366066800&end=1371204000',
success: function(data){alert(data);},
cache: false
});
PHP文件plotLiveData.php是这个例子的简化版本,它是:
<PHP
echo "[[Date.UTC(2013,5,14,7,00),33981.56442],
[Date.UTC(2013,5,14,8,00),33981.56309],
[Date.UTC(2013,5,14,9,00),33981.56376],
[Date.UTC(2013,5,14,10,00),33981.56347],
[Date.UTC(2013,5,14,11,00),33981.56177]]";
?>
Firebug告诉我JSON响应具有正确格式的数据但是在jquery.js的第8416行有一个错误(使用未缩小的版本只是为了找到错误)这一行是:
xhr.send( ( s.hasContent && s.data ) || null );
警告框中的错误文本告诉我:错误:parsererror抛出:SyntaxError: JSON。解析:意外字符
我现在很困惑。无效字符是什么?方括号?但它是一个数组,它在Firebugs响应和JSON窗口中看起来很好。
这是什么问题,我很茫然吗?
这是不是 json你发送。JSON不能包含任何"可执行"代码,例如函数/对象调用。http://json.org/
你可以发送你的日期值作为unix时间戳(例如int),然后在客户端解码json后将其转换为date对象,但你不能在该字符串中调用date。
echo "[[12345,33981,56442]...." // ok
echo "[[Date.UTC(...),....]...." // utterly invalid
JSON可能是Javascript数据结构的文本表示,但它不是可执行的Javascript代码。
这是无效的JSON字符串。您要查找的内容如下:
$array = array(
array(date_create('2013-05-14 07:00')->getTimestamp(), '33981.56442'),
array(date_create('2013-05-14 08:00')->getTimestamp(), '33981.56309'),
...
);
echo json_encode($array);
// [
// [1368529200,"33981.56442"],
// [1368532800,"33981.56309"],
// ...
// ]
文档:
-
DateTime
-
date_create()
-
::getTimestamp()
-
json_encode()
这样的东西可能适合您。一定要用好给你的功能。
json_encode
<?php
echo json_encode(
array(
array('date' => 'Date.UTC(2013,5,14,7,00)', 'point' => 33981.56442),
array('date' => 'Date.UTC(2013,5,14,8,00)', 'point' => 33981.56309),
array('date' => 'Date.UTC(2013,5,14,9,00)', 'point' => 33981.56376),
array('date' => 'Date.UTC(2013,5,14,10,00', 'point' => 33981.56347),
array('date' => 'Date.UTC(2013,5,14,11,00)', 'point' => 33981.56177)
)
);
?>
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jQuery AJAX Post方法错误(语法错误)
- 如何“;修复解析错误:语法错误,意外'{'in”用于php
- 错误:错误:语法错误,无法识别的表达式:
- 未捕获错误:语法错误,无法识别的表达式:ajaxsample/update_agenda(CodeIgniter)
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- Javascript ( jQuery ) 错误: 语法错误: 缺少 ) 在参数列表之后
- 错误:语法错误:令牌“”,“”是意外的标记
- 未捕获的错误:语法错误,无法识别的表达式:输入:复选框[名称=ninja_forms_field_57[术语]]
- 未捕获的错误:语法错误,无法识别的表达式:“.b-brand-box”
- 未捕获的错误:语法错误,无法识别的表达式:href
- ReactJS 返回解析器错误语法错误:在 AJAX 调用 JAVA servlet 后出现意外的标记 a
- jQuery:未捕获错误:语法错误,无法识别的表达式
- j查询错误 - 语法错误:缺少:在属性 ID 之后
- 在使用 Gulp 在 javascript 中声明对象时,在 Git bash 中出现以下错误“语法错误:意外标识符”
- 获取未捕获错误:语法错误、无法识别的表达式
- 获取错误语法错误:属性列表 url 后缺少 }:http://localhost/mcportal/public/pos
- 为什么我收到错误“语法错误:非法字符”
- 未捕获错误:语法错误,无法识别的表达式