2013-10-21 39 views
0

我一直在鉻上得到這個錯誤,但不是在Firefox上它驅使我瘋了,因爲儘管現在搜索了幾個小時,我仍然無法找到解決方案。我基本上從服務器獲取JSON,然後將其插入到DOM中。這裏是我的代碼...谷歌瀏覽器:SyntaxError:意外的輸入結束

function lookup(inputString){ 
    if(inputString.length == 0){  //hide suggestions 
     $('#suggestions').empty() 
       .fadeOut(); 
     } 
    else{   //make an AJAX call 
     $.ajax({ 
      type: 'GET', 
      url: '{% url "search.views.search" inputString="xyz" %}'.replace("xyz", inputString.toString()), 
      dataType: 'json', 
       success: function(search_results){ 
      suggestions = JSON.parse(JSON.stringify(search_results)); 
         alert(suggestions[0].name); 

        } 
       }) 
      } 
     } 

回答

1

您在本月底需要;

$.ajax({ 
      type: 'GET', 
      url: '{% url "search.views.search" inputString="xyz" %}'.replace("xyz", inputString.toString()), 
      dataType: 'json', 
       success: function(search_results){ 
      suggestions = JSON.parse(JSON.stringify(search_results)); 
         alert(suggestions[0].name); 

        } 
       }); 
+0

爲什麼JavaScript的ASI不能處理這種情況? – ElliotM

+0

@ElliotM:不完全確定爲什麼,但我猜Chromium比Firefox更嚴格,至少對於這個特定的函數調用。在某些情況下,我看到Chrome(不是Chromium)會執行ASI。但是,不要害怕自己正確地使用語法,而不要冒險像這樣跳過瀏覽器。 –

+0

謝謝你,但我的代碼似乎有一個錯誤,我找不到。我輸入的每一個字母都沒有進行AJAX調用,這讓我很煩惱。我可以鍵入's',並且會彈出警報,但是當我輸入'i'時,什麼也沒有:-( – Denny

0

相同的結論:)

你錯過了一個分號;

的JSLint可以幫助你找到這樣的錯誤:http://www.jslint.com/

function lookup(inputString) { 
    if (inputString.length === 0) { 
    $('#suggestions').empty().fadeOut(); 
    } 
    else { 
    $.ajax({ 
     type: 'GET', 
     url: '{% url "search.views.search" inputString="xyz" %}'.replace("xyz", inputString.toString()), 
     dataType: 'json', 
     success: function(search_results) { 
     suggestions = JSON.parse(JSON.stringify(search_results)); 
     alert(suggestions[0].name); 
     } 
    }); 
    } 
} 
相關問題