为什么我在运行 AJAX 查询时得到“$”未定义?

可能是一个愚蠢的问题,但我有一个页面,我试图将列表数据加载到客户表中以显示为前端。我正在使用 Javascript 函数中的 AJAX 调用从 SharePoint 列表中检索此列表,但是当我使用此函数时,我的控制台返回SCRIPT5009: '$' is not defined错误。以前,我使用非常相似的代码成功使用了 AJAX 调用,但是使用列表 ID 从列表中返回单个项目来搜索特定项目,并且我直接从返回的 URL 成功运行查询我正在寻找的数据 - 我只是不确定这个发生了什么。


function getIncidents(){

 $.ajax({

  url: "SharepointURL/_api/web/lists/getbytitle('Incident List')/items?$select=Title,Id,Priority,IncidentStart,IncidentStatus,IncidentTitle,UpdateResolution",

  type: "GET",

  headers: {"accept": "application/json;odata=verbose"},

  success: function (data) {

   var dResponse = data.d.results;

   var results = document.getElementById('Results');

   results.innerHTML += "<tr><td>Incident<br>Reference</td><td style='width:20px'></td><td>Priority</td><td style='width:20px;'></td><td>Start Time</td><td style='width:20px'></td><td style='width:170px'>Issue</td><td style='width:20px'></td><td style='width:170px'>Latest Update</td><td style='width:20px'></td></tr>";

   for(var obj in dResponse){

    results.innerHTML += "<tr style='font-size:10pt'><td>"+dResponse[obj].Title + "</td><td></td><td>" + dResponse[obj].Priority + "</td><td></td><td>" + dResponse[obj].IncidentStart + "</td><td></td><td>" + dResponse[obj].IncidentTitle + "</td><td></td><td>" + dResponse[obj].UpdateResolution + "</td></tr>";

   }

  }

 });

}

上一个我有这个调用的例子:



function getIncident() {

    var listName="Incident List";

    var incidentID = $("#incidentReference").val();

    if(incidentID!=""){

        $.ajax({

            url: "SharepointURL/_api/web/lists/getbytitle('Incident List')/items?$filter=Title eq '" + incidentID + "'&$select=Title,Id,SystemOrService,Priority,IncidentStatus,IncidentTitle,UpdateResolution,IncidentStart,ImpactedArea,IncidentEnd",

           updateImpact();

           getStartTime();

           getEndTime();

           actionsFormat();

                }                

            },

            error: function (data) {

                alert("Incident Reference incorrect or not found");

            }

        });

    }    

}


叮当猫咪
浏览 542回答 1
1回答

拉风的咖菲猫

问题是 jQuery ($) 尚未加载到页面。如果你之前使用过,这意味着加载已经设置好了,所以你不需要添加更多对 jQuery 的引用。在大多数情况下,当您使用 jQuery 时,您将订阅 DOM 事件就绪事件并在那里编写代码。所以,你只需要找到$(document).ready(&nbsp;...声明并在那里插入您的代码。如果您想将您的代码与已经存在的代码分开,您可以编写自己的 $(document).ready 订阅。如果你找不到这个 $(document).ready 函数,你可以在 html 中搜索对 jQuery 的引用,然后在它后面插入你的脚本。但是,您需要确定的是,该引用不包括 async 或 defer 属性。如评论中所述,如果您决定添加自己的订阅,还需要将其放在 jQuery 引用之后,因为如果 $ 不可用,它将不起作用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript