Получение списка данных с сайта SharePoint 2010 с использованием Jquery - PullRequest
2 голосов
/ 09 июля 2011

Я пытаюсь получить данные списка с сайта sharepoint, используя JQuery, но пока ничего не получено, также нет ошибок в firebug.Любая подсказка, что не так?

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

<script type="text/javascript">
$(document).ready(function() 
{
    var soapEnv =
        "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
            <soapenv:Body> \
                 <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
                    <listName>Action Items</listName> \
                    <viewFields> \
                        <ViewFields> \
                           <FieldRef Name='Title' /> \
                       </ViewFields> \
                    </viewFields> \
                </GetListItems> \
            </soapenv:Body> \
        </soapenv:Envelope>";

    $.ajax({
        url: "http://my_site/_vti_bin/lists.asmx",
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        complete: processResult,
        contentType: "text/xml; charset=\"utf-8\""
    });
});

function processResult(xData, status) {
    $(xData.responseXML).find("z\\:row").each(function() {
        console.log("aaaa");
        var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
        $("#tasksUL").append(liHtml);
    });
}

Ответы [ 5 ]

4 голосов
/ 09 июля 2011

Сразу после вашей линии

function processResult(xData, status) { 

добавить предупреждение как это:

alert(xData.responseText);

Это покажет вам, что возвращается после вызова GetListItems.

также, вы должны изменить эту строку:

 $(xData.responseXML).find("z\\:row").

к этому:

$(xData.responseXML).find("[nodeName='z:row']")

, который более надежен во всех браузерах. (См. Мой пост в блоге: http://sympmarc.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/)

Как упоминает Роб Виндзор в своем ответе, у меня есть множество веб-служб SharePoint, упакованных в jQuery, чтобы их было проще использовать в моей библиотеке SPServices jQuery . Я бы посоветовал вам попробовать, так как вам не придется делать столько работы.

2 голосов
/ 09 июля 2011

Я настоятельно рекомендую вам использовать объектную модель клиента вместо веб-сервисов. Гораздо богаче функциональность и намного, намного проще в использовании.

Клиентская объектная модель и jQuery

Если вы действительно хотите использовать веб-службы, то я предлагаю вам ознакомиться с проектом SPServices .

1 голос
/ 09 июля 2011

Вы должны обрабатывать событие ajax success, а не полное событие. Завершенное событие не имеет этой подписи.

http://api.jquery.com/jQuery.ajax/

завершено (jqXHR, textStatus)

успех (data, textStatus, jqXHR)

0 голосов
/ 05 августа 2011

Поместите функцию processResult в $(documnet).ready и отметьте

0 голосов
/ 09 июля 2011

Возможно, у вас нарушение политики того же источника.

Убедитесь, что текущий URL, на котором запускается скрипт, начинается с http://my_site/

Надеюсь, это поможет.Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...