簡體   English   中英

Uncaught SyntaxError:意外的令牌(,無錯誤可見

[英]Uncaught SyntaxError: Unexpected token (, no error visible

我正在編寫一個AJAX函數,但似乎有錯誤。 我似乎找不到任何東西。 請幫忙! 我瀏覽了以下問題: thisthisthis,但是沒有一個起作用。 這是我的代碼:

      function registerDevice(fp,uid)
  {
    $.ajax({
         type: "POST",
         async: true,
         url: "backend.php",
         data: {"fp": fp, "uid" : uid},
         success: function(output) {
          var json = eval('(' + output + ')');
          var status = json['status'];
          if(status == "success")
          {
            //redirect user.
            setTimeout(function(){
                    //do what you need here
                    <?php
                    if(isset($_GET['goto'])) 
                      {
                        echo 'window.location.replace("'.$_GET["goto"].'");';
                      }
                      else
                      {
                        echo 'window.location.replace("index.php");';         
                      }
                    ?>
            }, 2000);
          }
          else
          {
            $("#login-msg").text("Something went wrong. Please try again.");
            $("#login-alert").fadeTo(4000, 500).slideUp(500, function(){
            $("#login-alert").hide();
            });
          }
         },
         error: function(error) {
          $("#login-msg").text("There was an unknown error.");
          $("#login-alert").fadeTo(4000, 500).slideUp(500, function(){
          $("#login-alert").hide();
        });
         }
    });
  }

它的名稱如下:

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

這是我在Google Chrome瀏覽器中遇到的錯誤:

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

PS:第344行引用了以下行:

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

編輯1:backend.php

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

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

?>

eval函數需要一個字符串來評估。 您正在嘗試評估我認為的JSON對象。

嘗試:

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

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/eval

我找到了解決方案,這很愚蠢。

backend.php 沒有給出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);
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM