1

我对 spservices 有点陌生,我希望我不是在问一个已经回答过的问题。我已经检查过,但无法找到另一个解决与此问题相同的问题。我正在使用 GetListItems 检索存储在列表中的 url 和标题。现在我正在检索项目并将它们显示在一个临时表中。

它在我创建的引用 js 文件、jquery 等的小 html 页面中完美运行。

但,

当我将内容编辑器 Web 部件设置为指向 html 文件(使用内容链接)时,javascript 不起作用(或某些东西),并且项目不显示。我发现它停止工作的确切位置:

 $().SPServices({
                operation: method,
                async: false,
                listName: list,
                CAMLViewFields: fieldsToRead,
                  CAMLQuery: query,
                    completefunc: function (xData, Status) {
         alert("When it's in the Content Editor Web Part, this gets called");
                        $(xData.responseXML).SPFilterNode("z:row").each(function() {
         alert("but this does not");
                            var hyperlink = ($(this).attr("ows_Hyperlink")).split(",");
                            var url = hyperlink[0];
                            var description = hyperlink[1];


                            AddRowToTable(url,description);

                        });                
                    }
        });

正如我之前所说,当我转到 html 页面的物理地址时,这段代码可以完美运行。它抓取列表项并显示正确的内容。当我通过内容链接引用内容编辑器 Web 部件中的 html 页面时,就会出现问题。如果有人对此有见解,那将是非常受欢迎的。

谢谢,AA

4

1 回答 1

2

看起来您需要访问根站点。如果由于某种原因,您根本无法使用 ECMAScript

clientContext = new SP.ClientContext();
var oWebsite = clientContext.get_site().get_rootWeb();  //this is the web object
var url = clientContext.get_site().Url; //this is the root url
var listServiceUrl = url + "/_vti_bin/lists.asmx";

location.host + "/_vti_bin/lists.asmx"如果在您当前的设置中是安全的,您可以随时使用。

于 2012-07-24T18:12:30.050 回答