开发者

Getting list data from SharePoint 2010 site using Jquery

I am trying to get list data from sharepoint site using JQuery, b开发者_StackOverflowut have got nothing returned yet, no errors in firebug either. Any clue what is wrong?

<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);
    });
}


Right after your line

function processResult(xData, status) { 

add an alert like this:

alert(xData.responseText);

That will show you what is coming back from the call to GetListItems.

also, you should change this line:

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

to this:

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

which is more reliable across browsers. (See my blog post: http://sympmarc.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/)

As Rob Windsor mentions in his answer, I've got many of the SharePoint Web Services wrapped with jQuery to make them easier to use in my SPServices jQuery library. I'd suggest you try it out, as you won't have to do as much work.


I strongly suggest that you use the client object model instead of the Web services. Much richer functionality and much, much easier to use.

The Client Object Model and jQuery

If you really want to use the Web services, then I suggest you check out the SPServices project.


You should handle the ajax success event, not the complete event. The complete event doesn't have that signature.

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

complete(jqXHR, textStatus)

success(data, textStatus, jqXHR)


Perhaps you have a same-origin policy violation.

Check that the current url where runs the script, begins with http://my_site/

Hope this helps. Cheers


Put the processResult function within $(documnet).ready and check

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜