2017-02-05 58 views
1

正如标题所述,在Chrome远程调试中出现此错误。我试图发送一个ajax请求(jsonp)到本地主机中的.php文件,然后在扫描QR代码后使用QR码中的URL对数据库执行一些操作。但是,我收到此错误。未捕获的SyntaxError:意外的令牌<ajax调用jsonp

我知道jsonp不同于json并使用不同的语法,但是我使用的代码用于其他ajax调用。我无法弄清楚这个问题,并希望得到一些帮助。

这里是代码:

.html文件

<!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文件

<?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); 

?> 
+1

这个错误通常暗示服务器发送HTML ...查看开发工具网络选项卡,并期待在请求被接受 –

+0

嗯......在网络响应选项卡显示出此错误的响应...
致命错误:C:\ xampp \ htdocs \ MP \ appqrcode.php中的键'PRIMARY''带有消息'Duplicate entry'12'的未捕获异常'mysqli_sql_exception':14 堆栈跟踪: #0 C:\ xampp \ htdocs中\ MP \ appqrcode.php(14):mysqli_stmt- >执行() #1 {主} 在ç抛出:\ XAMPP \ htdocs中\ MP \上线appqrcode.php

+3

你去那里,现在你知道真正存在的问题 - 在PHP –

回答

0

错误:
致命错误:未捕获的异常' mysqli_sql_ex在C:\ xampp \ htdocs \ MP \ appqrcode.php:14 Stack trace:#0 C:\ xampp \ htdocs \ MP \ appqrcode.php(14)中输入密码为'PRIMARY'的消息'Duplicate entry'12' ):mysqli_stmt- >执行()#1 {主}抛出C:\ XAMPP \ htdocs中\ MP \上线appqrcode.php

通过改变表的主键问题解决了。

相关问题