2014-01-13 32 views
-1

全新使用JSon/ajax。試圖複製這個jQuery UI Autocomplete using a static json file as source只是一個例子。我不積極我正確地引用這個,如果有人可以讓知道什麼是錯的。得到一個(未捕獲的ReferenceError:請求不被定義)用ajax調用JSon文件(未捕獲的ReferenceError:請求未定義)

<form id="searchform" method="get" role="search"> 
       <input id="searchfield" /> 
       <input type="submit" name="go" value="go!" /> 
      </form> 


<script src='js/jquery-1.11.0.min.js'></script> 
<script src="js/autocomplete/jquery-ui-1.10.3.custom.js" type="text/javascript" charset="utf-8"></script> 

<script> 
    $(function() { 
    $.ajax({ 
     url: "json/Providers.json", 
     dataType: "json", 
     data: {term: request.term}, 
     success: function(data) { 
      var cat_data = $.map(data, function(item) { 
       return { 
        ProviderID: item.ProviderID, 
        Name: item.Name,     
       }; 
      }); 
      $("#searchfield").catcomplete({ 
       delay: 0, 
       source: cat_data, 
       minlength:0 
      }); 
     } 
    }); 
}); 
</script> 

JSON格式

{"Providers":[{"ProviderID":"3","NAME":"name1"}, 
    {"ProviderID":"4","NAME":"name2"}, 
    {"ProviderID":"5","NAME":"name3"}]} 
+1

請求未定義。那麼你期望的要求是什麼?!從你複製這段代碼的地方你應該能夠找到'請求'被定義在哪裏...... –

+2

這個消息很清楚:'request.term'(請求未定義) – Merlin

+0

是'請求'jquery文件中的一個函數?我需要用什麼來替換它? – user1

回答

0

這種特殊data: {term: request.term},是問題

您需要訪問之前定義任何JavaScript變量。

var request; 

在你的情況下,data是不需要的。剛剛刪除data: {term: request.term}因爲你正在加載靜態.json文件

+0

我會用什麼替換請求?我認爲這是來自jQuery文件的功能。 – user1

+1

'數據'是將參數發送到服務器。我想你可以刪除它 – Merlin

+0

刪除它給了我更多的錯誤,請參閱我的意見在其他答案 – user1

0

由於你是一個閱讀json文件,很顯然沒有必要傳遞任何參數。因此請刪除data: {term: request.term}

+0

得到更多的錯誤刪除它:選項文件:////C /用戶/jswanson/Desktop/Survey/json/Providers.json請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許原產地'null'訪問。 – user1

+0

也是這樣的:XMLHttpRequest無法加載file:/// C:/Users/jswanson/Desktop/Survey/json/Providers.json。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許原產地'null'訪問。 – user1

+1

Ajax是從JavaScript發出HTTP請求的行爲。停止嘗試不使用HTTP。運行一個Web服務器。 – Quentin

相關問題