In your example since HTTP GET request is used, query parameters have to be specified in the URL. You can construct the GET request URL in two ways:
http://server/_api/search/query?query_parameter=value&query_parameter=value
http://server/_api/search/query(query_parameter=value&query_parameter=<value>)
The Search REST service supports both HTTP POST and HTTP GET requests. The following examples demonstrate how to consume Search Query REST Interface using JavaScript.
How to consume Search Query REST Interface using JavaScript
Assume the following query is used contentclass:STS_ListItem AND ContentType:Task to retrieve task items.
Search GET request
function getJson(endpointUrl,success,failure)
{
$.ajax({
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose"
},
url: endpointUrl,
success: success,
failure: failure
});
}
function searchTasks(webUrl,success, failure) {
var searchUrl = webUrl + "/_api/search/query?querytext='contentclass:STS_ListItem AND ContentType:Task'";
getJson(searchUrl,success,failure);
}
Usage
//get and print tasks
searchTasks(_spPageContextInfo.webAbsoluteUrl,
function(data){
var query = data.d.query;
var resultsCount = query.PrimaryQueryResult.RelevantResults.RowCount;
for(var i = 0; i < resultsCount;i++) {
var row = query.PrimaryQueryResult.RelevantResults.Table.Rows.results[i];
var taskName = row.Cells.results[3].Value;
console.log(taskName);
}
},
function(error){
console.log(JSON.stringify(error));
}
);
Search POST request
function postJson(endpointUrl,payload,success,failure)
{
$.ajax({
type: "POST",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
data: JSON.stringify(payload),
url: endpointUrl,
success: success,
failure: failure
});
}
function searchTasks(webUrl,success, failure) {
var searchUrl = webUrl + "/_api/search/postquery";
var searchPayload = {
'request': {
'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},
'Querytext' : 'contentclass:STS_ListItem AND ContentType:Task'
}
};
postJson(searchUrl,searchPayload,success,failure);
}
Usage
searchTasks(_spPageContextInfo.webAbsoluteUrl,
function(data){
var query = data.d.postquery;
var resultsCount = query.PrimaryQueryResult.RelevantResults.RowCount;
for(var i = 0; i < resultsCount;i++) {
var row = query.PrimaryQueryResult.RelevantResults.Table.Rows.results[i];
var taskName = row.Cells.results[3].Value;
console.log(taskName);
}
},
function(error){
console.log(JSON.stringify(error));
}
);
References
SharePoint Search REST API overview