2016-06-09 61 views
0

我正在使用HTML,JS,AngularJS針對SharePoint Server 2013 Search API的REST端點創建一個提前輸入的人員搜索。ngResource Url參數問題

我的具體問題是在我的資源定義中。

我使用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中刪除。

和請求到達這樣的服務器:

http://mysharepointserver/_api/search/query?querytext=%27John+AND+Memberships:-InformationSystems%27&sourceid=%27B09A7990-05EA-4AF9-81EF-EDFAB16C4E31%27

「:GRP」,這是被解析出來的URL的搜索查詢的一部分。

有沒有方法escape冒號,所以它在這種情況下被忽略?

謝謝!

回答

1

此處的修復方法是在您不希望angularjs(1.5)認爲它是參數時,將查詢字符串中的冒號(:)替換爲%3A