我正在使用HTML,JS,AngularJS针对SharePoint Server 2013 Search API的REST端点创建一个提前输入人员搜索。
我的具体问题在于我的资源定义。
我正在使用的SharePoint搜索查询的模式包含一个冒号(:
):
.../_api/search/query?querytext=%27John+AND+Memberships:GRP-InformationSystems%27&sourceid=%27B09A7990-05EA-4AF9-81EF-EDFAB16C4E31%27
以下是该服务的实施:
var searchService = servicesMod.factory('searchPeople', ['$resource',
function ($resource) {
return $resource('http://teamsint/_api/search/query?querytext=%27:searchText+AND+Memberships:GRP-InformationSystems%27&sourceid=%27B09A7990-05EA-4AF9-81EF-EDFAB16C4E31%27', { 'searchText': '@@searchText' }, {
query: { method: 'GET', isArray: false, withCredentials: true },
});
}]);
...而angularjs错误地将其识别为参数并将其从资源URL中删除。
并且请求按照以下方式命中服务器:
“:GRP”是搜索查询的一部分,正在从URL中解析出来。
有没有办法escape
冒号,所以在这种情况下会被忽略?
谢谢!
答案 0 :(得分:2)
这里的修复是当你不希望angularjs(1.5)认为它是一个参数时,用:
替换查询字符串中的冒号(%3A
)。