未捕获的SyntaxError:意外的令牌(,没有可见的错误

时间:2016-06-30 03:56:20

标签: javascript jquery ajax google-chrome error-handling

我正在编写AJAX函数,但看起来有错误。我似乎找不到任何东西。请帮忙!我浏览过这些问题:thisthisthis,但这些问题都没有奏效。这是我的代码:

    $('body').on("click", "#mybtn", function (e) {
registerDevice(result,uid);   
});

就像这样调用:

VM411:1 Uncaught SyntaxError: Unexpected token )
success @   login_alpha.php:344
j   @   jquery.js:3148
fireWith    @   jquery.js:3260
x   @   jquery.js:9314
b   @   jquery.js:9718

以下是我在Google Chrome中遇到的错误:

var json = eval('(' + output + ')');

P.S:第344行指的是这一行:

<?php
$uid = $_POST['uid'];
$fp = $_POST['fp'];

//my code here.
$response_array['status'] = "success";
$response_array['type'] = "cookie";

?>

编辑1:backend.php

{{1}}

2 个答案:

答案 0 :(得分:0)

eval函数需要一个字符串来评估。您正在尝试评估我认为的JSON对象。

尝试:

var json = eval('(' + JSON.stringify(output) + ')');

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

答案 1 :(得分:0)

我找到了解决方案,而且非常愚蠢。

backend.php NOT 给出了JSON响应! 这是原始代码:

<?php
$uid = $_POST['uid'];
$fp = $_POST['fp'];

//my code here.
$response_array['status'] = "success";
$response_array['type'] = "cookie";

?>

我刚刚添加了这一行:

echo json_encode($response_array);

这确保我向AJAX呼叫的成功功能发回JSON响应!多么愚蠢的错误。

backend.php的最终编辑:

<?php
$uid = $_POST['uid'];
$fp = $_POST['fp'];

//my code here.
$response_array['status'] = "success";
$response_array['type'] = "cookie";

//print json response
echo json_encode($response_array);
?>