Javascript 未捕获的语法错误:意外标记<;ajax调用jsonp
正如标题所述,在Chrome远程调试中获取此错误。我正在尝试向localhost中的.php文件发送一个ajax请求(jsonp),然后在扫描二维码后,该文件将使用二维码中的URL对数据库执行某些操作。然而,我得到了这个错误 我知道jsonp与json不同,并且使用不同的语法,但是我使用的代码适用于其他ajax调用。我无法解决这个问题,希望能得到一些帮助 代码如下: .html文件Javascript 未捕获的语法错误:意外标记<;ajax调用jsonp,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,正如标题所述,在Chrome远程调试中获取此错误。我正在尝试向localhost中的.php文件发送一个ajax请求(jsonp),然后在扫描二维码后,该文件将使用二维码中的URL对数据库执行某些操作。然而,我得到了这个错误 我知道jsonp与json不同,并且使用不同的语法,但是我使用的代码适用于其他ajax调用。我无法解决这个问题,希望能得到一些帮助 代码如下: .html文件 <!DOCTYPE html> <html> <head>
<!DOCTYPE html>
<html>
<head>
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<title></title>
</head>
<body>
<div data-role="page" id="home">
<div data-role="header">
<h1></h1>
</div>
<div data-role="main" class="ui-content">
<p>
<a target="_blank" href="javascript:scan();" style="text-decoration: none"><button>Scan</button></a>
</p>
</div>
</div>
<div data-role="page" id="display">
<div data-role="header">
<h1>Display</h1>
</div>
<div data-role="main" class="ui-content">
<table data-role="table" data-mode="column" id="allTable" class="ui-responsive table-stroke">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script type= "text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script>
function scan()
{
cordova.plugins.barcodeScanner.scan(
function (result) {
if(!result.cancelled)
{
if(result.format == "QR_CODE")
{
var value = result.text;
$.ajax({
type: "GET",
url: value + '?callback=?',
dataType: 'JSONP',
async: false,
jsonp : "callback",
jsonpCallback: "jsonpcallback",
success: function jsonpcallback(response)
{
if (response == "Success")
{
alert(response);
}
else
{
alert(response);
}
}
});
}
}
},
function (error) {
alert("Scanning failed: " + error);
}
);
}
</script>
</body>
</html>
<?php
header('Content-Type: application/json');
require 'dbcon.php';
session_start();
$acc_points = $_SESSION["acc_points"];
$acc_id = $_SESSION["acc_id"];
$result = $con->prepare(" UPDATE `points` SET `acc_points` = acc_points+1 WHERE `acc_id` = ? ");
$result->bind_param("i", $acc_id);
$result->execute();
if($acc_points != null)
{
$response = "Success";
echo $_GET['callback'] . '(' . json_encode($response) . ')';
}
else
{
$response = "Failed. Please try again.";
echo $_GET['callback'] . '(' . json_encode($response) . ')';
}
//connection closed
mysqli_close ($con);
?>
展示
名称
函数扫描()
{
cordova.plugins.barcodeScanner.scan(
功能(结果){
如果(!result.cancelled)
{
如果(result.format==“QR\U代码”)
{
var值=result.text;
$.ajax({
键入:“获取”,
url:value+'?回调=?',
数据类型:“JSONP”,
async:false,
jsonp:“回调”,
jsonpCallback:“jsonpCallback”,
成功:函数jsonpcallback(响应)
{
如果(响应=“成功”)
{
警报(响应);
}
其他的
{
警报(响应);
}
}
});
}
}
},
函数(错误){
警报(“扫描失败:+错误”);
}
);
}
.php文件
<!DOCTYPE html>
<html>
<head>
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<title></title>
</head>
<body>
<div data-role="page" id="home">
<div data-role="header">
<h1></h1>
</div>
<div data-role="main" class="ui-content">
<p>
<a target="_blank" href="javascript:scan();" style="text-decoration: none"><button>Scan</button></a>
</p>
</div>
</div>
<div data-role="page" id="display">
<div data-role="header">
<h1>Display</h1>
</div>
<div data-role="main" class="ui-content">
<table data-role="table" data-mode="column" id="allTable" class="ui-responsive table-stroke">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script type= "text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script>
function scan()
{
cordova.plugins.barcodeScanner.scan(
function (result) {
if(!result.cancelled)
{
if(result.format == "QR_CODE")
{
var value = result.text;
$.ajax({
type: "GET",
url: value + '?callback=?',
dataType: 'JSONP',
async: false,
jsonp : "callback",
jsonpCallback: "jsonpcallback",
success: function jsonpcallback(response)
{
if (response == "Success")
{
alert(response);
}
else
{
alert(response);
}
}
});
}
}
},
function (error) {
alert("Scanning failed: " + error);
}
);
}
</script>
</body>
</html>
<?php
header('Content-Type: application/json');
require 'dbcon.php';
session_start();
$acc_points = $_SESSION["acc_points"];
$acc_id = $_SESSION["acc_id"];
$result = $con->prepare(" UPDATE `points` SET `acc_points` = acc_points+1 WHERE `acc_id` = ? ");
$result->bind_param("i", $acc_id);
$result->execute();
if($acc_points != null)
{
$response = "Success";
echo $_GET['callback'] . '(' . json_encode($response) . ')';
}
else
{
$response = "Failed. Please try again.";
echo $_GET['callback'] . '(' . json_encode($response) . ')';
}
//connection closed
mysqli_close ($con);
?>
错误是:
致命错误:C:\xampp\htdocs\MP\appqrcode.php:14堆栈跟踪:#0 C:\xampp\htdocs\MP\appqrcode.php(14):mysqli\u stmt->execute()#1{main}在第14行的C:\xampp\htdocs\MP\appqrcode.php中抛出未捕获的异常“mysqli\u sql\u sql\u异常” 通过更改表的主键解决了此问题。错误为:
致命错误:C:\xampp\htdocs\MP\appqrcode.php:14堆栈跟踪:#0 C:\xampp\htdocs\MP\appqrcode.php(14):mysqli\u stmt->execute()#1{main}在第14行的C:\xampp\htdocs\MP\appqrcode.php中抛出未捕获的异常“mysqli\u sql\u sql\u异常”
通过更改表的主键解决了此问题。此错误通常表明服务器正在发送HTML。。。检查开发者工具网络选项卡,查看请求收到的响应。。。此错误显示在“网络响应”选项卡中…
致命错误:未捕获异常“mysqli\u sql\u exception”,并在C:\xampp\htdocs\MP\appqrcode.php:14堆栈跟踪:#0 C:\xampp\htdocs\MP\appqrcode.php(14):mysqli\u stmt-execute()#1{main}在第14行的C:\xampp\htdocs\MP\appqrcode.php中抛出
现在,您知道真正的问题存在于哪里了-在php中,MySQL表的主键是什么?您似乎输入了主键的副本,这导致了此错误。此错误通常表明服务器正在发送HTML。。。检查开发者工具网络选项卡,查看请求收到的响应。。。此错误显示在“网络响应”选项卡中…
致命错误:未捕获异常“mysqli\u sql\u exception”,并在C:\xampp\htdocs\MP\appqrcode.php:14堆栈跟踪:#0 C:\xampp\htdocs\MP\appqrcode.php(14):mysqli\u stmt-execute()#1{main}在第14行的C:\xampp\htdocs\MP\appqrcode.php中抛出
现在,您知道真正的问题存在于哪里了-在php中,MySQL表的主键是什么?您似乎正在输入导致此错误的主键的副本。。