【发布时间】:2018-09-13 03:44:27
【问题描述】:
我有以下 Jquery 代码,我正在尝试根据区域值在 $('.cbs-List').HTML(divHTML); 中显示信息。但是在成功函数中,我无法读取该区域的值,它指出
'数据未定义'
在这种情况下,将参数或值传递给成功函数的正确形式是什么?
$(document).ready(function() {
getSearchResultsREST('LA');
});
function getSearchResultsREST(region) {
var querySA = 'ClientSiteType:ClientPortal* contentclass:STS_Site Region=LA';
var queryDR = 'ClientSiteType:ClientPortal* contentclass:STS_Site Region=EM';
if(region == 'LA') {
var searchURL = _spPageContextInfo.webAbsoluteUrl + "/_api/search/query?queryText='" + querySA + "'";
} else {
var searchURL = _spPageContextInfo.webAbsoluteUrl + "/_api/search/query?queryText='" + queryDR + "'";
}
$.ajax({
url: searchURL,
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
contentType: "application/json; odata=verbose",
success: SearchResultsOnSuccess(data, region),
error: function(error) {
$('#related-content-results').html(JSON.stringify(error));
}
});
}
function SearchResultsOnSuccess(data, region) {
var results;
var divHTML = '';
if (data.d) {
results = data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results;
if(results.length == 0) {
$('#related-content-results').html('There is No data for the requested query on ' + _spPageContextInfo.webAbsoluteUrl);
} else {
for (i=0; i<results.length; i++) {
var item = results[i];
var itemCell = item.Cells;
var itemResults = itemCell.results;
// Get values for item result
var _title = getValueByKey("Title", itemResults);
var _path = getValueByKey("Path", itemResults);
divHTML += '<li><a href=' + _path + '>' + _title + '</li>';
}
// Display information based on region.
$('.cbs-List').html(divHTML);
}
}
}
【问题讨论】:
-
您必须对属性进行 urlencode:将 encodeURIComponent(
) 添加到 searchURL 而不是值本身。 -
你的意思是 if(region == 'LA') { var searchURL = encodeURIComponent(_spPageContextInfo.webAbsoluteUrl + "/_api/search/query?queryText='" + querySA + "'");
-
因为格式问题,我把它放到了aswer中。
标签: javascript jquery