为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

叮当猫咪 2022-01-07 10:33:08
可能是一个愚蠢的问题,但我有一个页面,我试图将列表数据加载到客户表中以显示为前端。我正在使用 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");            }        });    }    }
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

问题是 jQuery ($) 尚未加载到页面。如果你之前使用过,这意味着加载已经设置好了,所以你不需要添加更多对 jQuery 的引用。

在大多数情况下,当您使用 jQuery 时,您将订阅 DOM 事件就绪事件并在那里编写代码。

所以,你只需要找到

$(document).ready( ...

声明并在那里插入您的代码。

如果您想将您的代码与已经存在的代码分开,您可以编写自己的 $(document).ready 订阅。

如果你找不到这个 $(document).ready 函数,你可以在 html 中搜索对 jQuery 的引用,然后它后面插入你的脚本。但是,您需要确定的是,该引用不包括 async 或 defer 属性。

如评论中所述,如果您决定添加自己的订阅,还需要将其放在 jQuery 引用之后,因为如果 $ 不可用,它将不起作用。


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 541 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信