美好的一天,
我目前正在调用 Sharepoint Rest API 搜索查询。我不知道为什么它不起作用。而且我不确定我的 URL 输入是否正确,如下所示是我编写的用于使用 jQuery 调用 API 的代码。查询是取回任何名为“Before”的文件,它是 XML 的形式。
请给我一些建议,我应该做出哪些改变,谢谢:)
我正在使用的 URL 是:
http://test-sharepoint/_layouts/15/start.aspx#/SitePages/Home.aspx
http://test-sharepoint/Tests/Documents/Forms/AllItems.aspx
这是我实现的代码:
function apiCallTest() {
const adminAccount = 'testUser';
const adminAccountPassword = 'testPassword';
const auth = btoa(`${adminAccount}:${adminAccountPassword}`);
const testQuery = 'BEFORE';
const apiUrl = "https://test-sharepoint/Test/Documents/Forms/_api/search/query?querytext='BEFORE'"
const apiUrl2 = "https://test-sharepoint/Test/Documents/Forms/AllItems.aspx/_api/search/query?querytext=%27BEFORE%27";
const apiUrl3= "https://test-sharepoint/_api/web/GetListByTitle('SitePages')/Items?$filter=Title eq 'before'"
const apiUrl4= "https://test-sharepoint/_api/search/query?querytext='BEFORE'"
const headers = {
'Accept': 'application/json;odata=nometadata',
'Authorization': `Basic ${auth}`
};
$.ajax({
url: apiUrl5,
headers: headers,
method: 'GET',
success: function(data) {
// Process the search results as needed
console.log('Search Results:', data)
},
error: function(xhr, textStatus, errorThrown) {
console.log("Cannot connect")
console.error('Error:', xhr, textStatus, errorThrown);
}
});
}
apiCallTest();
不知道你在哪里找到这些API,但是错误很多!
apiUrl
是假的apiUrl2
是假的apiUrl3
为 false:将 web/GetListByTitle('SitePages')
替换为 web/lists/GetByTitle('SitePages')
apiUrl4
正在工作!因此,使用 REST API 在 SharePoint 上搜索的工作 URL 是:
https://test-sharepoint/_api/search/query?querytext=%27BEFORE%27
https://test-sharepoint/_api/web/lists/GetByTitle('SitePages')/Items?$filter=Title%20eq%20%27BEFORE%27
https://test-sharepoint/_api/web/lists/GetByTitle('SitePages')/Items?$filter=substringof(%27BEFORE%27,%20Title)
在我这边在 SharePoint 2019 上进行了测试。
您可以在 Web 浏览器上测试它:打开您的 SharePoint 网站并更改 URL。无需 jQuery 来测试查询。