Я работаю над «новостным потоком» статей для читателей, которые должны отображаться в виде веб-части на домашней странице сайта sharepoint. Для этого я обращаюсь к списку сообщений в блоге, чтобы вернуть отображаемые данные, и я пытаюсь получить кликабельную ссылку, которая позволяет пользователю отправлять свои «лайки» обратно в виде действия POST без необходимости открывать новое окно. с самим постом. У меня есть следующий код, который возвращает сообщение об ошибке «HTTP400: BAD REQUEST - запрос не может быть обработан сервером из-за неправильного синтаксиса. (XHR) POST - URL / _api / web / lists / getbytitle ('Posts') ) / items (2) '
Обратите внимание, что первоначальный вызов AJAX для получения информации работает без проблем. Мне интересно, является ли это «истинным», который я пытаюсь отправить, однако я не уверен, какой правильный синтаксис для отправки данных «пользователю нравится этот пост».
var filResponse = [ ];
var listTitle = "Posts";
var itemId = "";
var webUrl = "_spPageContextInfo.webServerRelativeUrl";
function getToRead() {
$.ajax({
url: "_spPageContextInfo.webServerRelativeUrl/_api/web/lists/getbytitle('Posts')/items?$select=ID,Title,Body,Brands_x0020_impacted,PublishedDate,Best_x0020_before,hide_x0020_after,LikesCount,LikedBy/Title&$expand=LikedBy",
type: "GET",
headers: {"accept": "application/json;odata=verbose"},
success: function(data) {
filResponse = data.d.results;
filResponse.reverse();
for (var obj in filResponse){
var likedBy = "blank";
if(filResponse[obj].LikedBy.results){
likedBy = JSON.stringify(filResponse[obj].LikedBy.results);
}
if (likedBy.includes(loginName)){
} else {
itemId = filResponse[obj].ID;
document.getElementById("results").innerHTML += "<strong>" + filResponse[obj].Title + "</strong><br>" + filResponse[obj].Body + "<p id='like' onclick='Reputation.setLike(webUrl, listTitle, itemId, true)'>I have read and understood this article</p><br>";
}
}
}
});
}
Reputation.setLike(webUrl, listTitle, itemId, true)
.done(function (item) {
console.log('Liked');
})
.fail(function (error) {
console.log(JSON.stringify(error));
});