2017-02-05 100 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

通過改變表的主鍵問題解決了。

相關問題