powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
5 сообщений из 5, страница 1 из 1
Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
    #39304508
Делаю пример из книжки. Пример простой, тема - веб часть "Редактор сценариев" (Script Editor). Пока скрипт содержал обычные alert() с "Hellow Word" внутри, все было хорошо. Но вот дошли до момента, когда автор решил продемонстрировать работу REST API шаропойнта через эту самую веб часть.

Итак.. вставляем скрипт в SEWP (уже изменен под название моего сайта и списка):
<script type="text/javascript">
$(function() {
$.ajax({
url: "/contracts3/_api/web/lists/GetByTitle('list1')",
type: "GET",
headers: {
"accept": "application/json;odata=verbose"
},
}).success(function(data) {
alert(data.d.Title + " : " + data.d.Created);
});
});
</script>

И тишина... Оговариваю сразу: jQuery подключен, если мы вставляем alert('123') внутрь $(function(){...}) - окно выскакивает.
Запуск скрипта ведется из самой страницы списка этого листа (AllItems.aspx списка list1).
Список принадлежит сайту contracts3, который является дочерним главного сайта семейства.
Пробовал и "/_api...." и полный путь: " http://spdev/contracts3/..." - полный игнор.
Просто строка в браузере: http://spdev/contracts3/_api/web/lists/GetByTitle('list1') - работает, получаем на страницу перечень свойств списка. Там есть и объект d и d.Title - все как по примеру.

Создал простой html файл:
<html>
<head>
<script src=" http://code.jquery.com/jquery-3.1.0.min.js" integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=" crossorigin="anonymous"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
alert('1232');
$.ajax({
url: "http://spdev/contracts3/_api/web/lists/GetByTitle('list1')",
type: "GET",
success: function(data) {
alert(data.d.Title + " : " + data.d.Created);
},
error: function(e){alert('error!!!');},
complete: function(){alert('complete!!!');},
});
});
</script>
</body>
</html>
Функция ajax работает - вызываются колбэки error и complete. Был наивен, полагал, что смогу получить результат - шаропойнт отказывается работать с файлом. Но хотя бы видно, что метод ajax отрабатывает.

Вывод - синтаксически инструкции написаны верно. Но если они выполняются под вебчастью редактора скриптов на странице SP, то метод ajax как-буд-то игнорируется. Я вставлял в скрипт и колбеки на error и complete - все тихо. Чем можно объяснить такую реакцию SP?
...
Рейтинг: 0 / 0
Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
    #39304514
edd1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то без регистрации получилось опубликовать сообщение. Ладно.

И еще вопрос - как можно отлаживать скрипты в SEWP - на странице у меня отключается возможность отладки. Могу только исходный код посмотреть, но точек остановки мне уже не поставить. Есть какой-то способ отладки? Может через Visual Studio это можно посмотреть? Подразумеваю конечно отладку в составе страницы SP, а не голый скрипт в отдельном файле.
...
Рейтинг: 0 / 0
Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
    #39304574
edd1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел на этом же форуме интересную статью: http://www.sql.ru/blogs/gandjustas/1679

Она предоставила поле для экспериментов! Переписал скрипт так:

<script type="text/javascript">
$(function() {
var request = new Sys.Net.WebRequest();
request.set_url("/contracts3/_api/web/lists/GetByTitle('list1')");
request.set_httpVerb("GET");
request.add_completed(function(executor, eventArgs) {
if(executor. get_responseAvailable()) {
var dd = executor.get_responseData();
$("#divHellowWorld").html(dd);
}
});

request.invoke();

});
</script>

dd содержат данные по списку, правда это формат XML, запросить JSON - это другой вопрос. Главное, запрос стал работать.

Между тем вопрос темы остается открытым - почему стандартная функция ajax() не работает? Причем не работает так, что будучи внедренной в страницу шаропойнта, не работает ни один из ее обработчиков: success, error, complete? Ошибок нет, код до нее и за ней выполняется (проверял алертами).
...
Рейтинг: 0 / 0
Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
    #39305337
edd1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И все равно как-то грустно. В примере, используя метод jquery ajax() мы должны были получить простой для чтения объект json, метод не работает.
Замена нашлась - Sys.Net.WebRequest(); Но как его заставить возвратить нечто удобное. На выходе получается xml формата:
<?xml ...>
<entry>
<id>...</id>
<category ...>...</category>

... куча <link href=....>

...

наконец:
<content type="application/xml">

<m:properties>
<d:имя_свойства_списка ...>значение</d:имя_свойства_списка>
...
</m:properties>

</content>

</entry>

Как с этим работать? Можно поконкретнее, какие функции посмотреть в javascript? Может это можно в json перевести - у меня не получилось. Или может быть свой запрос настроить так, чтобы в качестве ответа приходил json?

Лучше было бы объяснить, почему не сработала функция ajax()...
...
Рейтинг: 0 / 0
Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
    #39305658
edd1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вынужден извиниться. Все заработало. Вчера это обнаружил во время примера со ссылкой на html-страницу в CEWP. Сегодня попробовал напрямую вставить html в редактор контента - все хорошо. И по F-12 так же захожу в отладчик.

Не знаю, что было, но не без пользы - для себя нашел альтернативные варианты запросов к SP, почитал дополнительный материал.

Тема закрыта.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Функция jQuery ajax() в вебчасти редактора скриптов (SEWP). Не работает.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]