使用ajax调用JSon文件(未捕获的ReferenceError:请求未定义)

时间:2014-01-13 15:05:47

标签: javascript jquery ajax json

全新使用JSon / ajax。尝试复制此jQuery UI Autocomplete using a static json file as source仅作为示例。如果有人能让我知道什么是错的话,我并不是肯定的我正确地引用了这个。获取(未捕获的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"}]} 

2 个答案:

答案 0 :(得分:0)

此特定data: {term: request.term},是问题

您需要在访问之前定义任何javascript变量。

 var request;

在您的情况下,data不是必需的。只需删除data: {term: request.term},因为您正在加载静态.json文件

答案 1 :(得分:0)

由于您正在阅读json文件,因此很明显无需传递任何参数。请删除data: {term: request.term}