2014-10-08 59 views
0

對於此行的代碼:什麼是未捕獲的SyntaxError:意外的記號<是什麼意思?

var result = eval('('+result+')'); 

在這種情況下:

function saveUser(){ 
    alert(url); 
     $('#fm').form('submit',{ 
      url: url, 
      onSubmit: function(){ 
       return $(this).form('validate'); 
      }, 
      success: function(result){ 
       var result = eval('('+result+')'); 
       if (result.errorMsg){ 
        $.messager.show({ 
         title: 'Error', 
         msg: result.errorMsg 
        }); 
       } else { 
        $('#dlg').dialog('close');  // close the dialog 
        $('#dg').datagrid('reload'); // reload the user data 
       } 
      } 
     }); 

    } 

如何解決這個錯誤嗎?

+0

1)eval不好,2)'result'的內容是什麼? – Cheery 2014-10-08 06:37:06

+0

嘿,只需檢查代碼,意外的令牌,它會告訴你錯誤發生的行號(希望你正在使用瀏覽器的Inspect元素功能)。 – Kailas 2014-10-08 06:38:09

+0

而不是'eval()',你最好使用'JSON。 parse()':) – Ravi 2014-10-08 06:39:22

回答

2

what does Uncaught SyntaxError ... mean?

這意味着eval無法分析輸入(如JavaScript),因爲它包含了<其中不應該有一個。 FWIW如果響應是HTML,JSON.parse也無濟於事。

How do i fix the error?

您必須處理預期如何處理響應,例如,如果它是HTML,請不要通過eval

或者您修復服務器端並返回客戶端期望的repsonse,例如JSON。