我正在尝试使用CAML查询来从SharePoint 2007列表中找到基于通过JavaScript检索的" cardid"值的项目。我可以看到该值正在分配给变量,但是每当我尝试添加查询时,列表不再显示。我希望有更多经验的人能清除我做错了什么。
注意:我使用U2U CAML工具来生成此查询。当我从那里执行它时,它会返回有效的结果,只是在我尝试与jQuery结合使用时。
<script language = "javascript"> function GetAnnouncementData() { var soapPacket = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
<soapenv:Body>
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
<listName>eCards</listName>
<View>
<Query><Where>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>116</Value>
</Eq></Where> </Query>
<ViewFields>
<FieldRef Name='Title' />
<FieldRef Name='Greeting' />
<FieldRef Name='Message'/>
<FieldRef Name='Card' />
</ViewFields> </View>
</GetListItems>
</soapenv:Body> </soapenv:Envelope>"; jQuery.ajax({ >url: "http://localhost/place/_vti_bin/lists.asmx", type: "POST", dataType: "xml", data: soapPacket, complete: processResult, contentType: "text/xml; charset="utf-8"" }); } function processResult(xData, status) { jQuery(xData.responseXML).find("z\:row").each(function() {
JSRequest.EnsureSetup(); var cardID = JSRequest.QueryString["cardID"];
$("<li>" + $(this).attr("ows_Title") + "</li>").appendTo("#AnnouncementData"); }); }
$(document).ready( function(){ GetAnnouncementData(); }); </script>
我还尝试用列表中的预定义值替换" cardid"。仍然没有返回结果。:(
请使用U2U CAML构建器工具首先测试您的CAML查询:http://www.u2u.be/res/tools/camlquerybuilder.aspx
您可以使用Fiddler查看Web服务与运行JavaScript的浏览器之间的流量。使用Chrome(按F12)调试JavaScript。http://www.fiddler2.com/fiddler2/
在这里类似的代码:http://community.office365.com/en-us/forums/153/p/13711/63998.aspx