0

我目前正在为我工​​作的学校开发一个 Web 应用程序。我们的一台专用服务器上有一个名为 FROG 的程序。不幸的是,这是非常锁定的,您使用 aa gui 创建网站。您可以对其进行的最多编码是 HTML 和 javascript。

我希望能够从我们也拥有的远程服务器中检索信息。由于跨域限制,我无法使用 ajax。但是,我想出了一个解决方法。

我在远程服务器上的一个名为 xrequest.js 的文件中调用了这个函数:

loadNotices({[{title: 'this is a test'},{title: 'this is another test'}]});

这只是一个将 json 对象作为参数传递的函数调用(参数最终将由从数据库检索的数据生成)。

在我的其他受限服务器上,我有这个 javacript:

<script type="text/javascript">
function loadNotices(data)
{
    alert(data);
}

var url = "http://somedomain.com/tests/xrequest.js";
var script = document.createElement('script');
script.setAttribute('src', url);

document.getElementsByTagName('head')[0].appendChild(script); 
</script>
<div id="notices"></div>

我想要做的是遍历 xrequest.js 文件中的每个标题,并将它们显示为列表。

我不确定如何遍历标题。

如果您需要更多信息,请发表评论。任何帮助都会得到帮助。

非常感谢

菲尔

4

2 回答 2

1

要遍历标题,首先需要删除数组周围的花括号。之后,循环浏览如下标题:

function loadNotices(arr) {
    var title, i = 0;
    for (; i < arr.length; i++) {
        title = arr[i].title;
    }
}​

另外,考虑改变:

document.getElementsByTagName('head')[0].appendChild(script); 

document.head.appendChild(script); 
于 2012-08-10T12:36:14.200 回答
0

您的实现看起来像 JSONP 调用。使用 Jquery,您可以轻松搞定

$.get('url?callback', {<data>}, function(data){

});

在 url的?callback末尾,jquery 自动创建一个随机回调函数。在您的服务器上,您可以在它周围添加包装回调函数,而不是返回正常的 JSON。以 php 为例:

$callback = $_GET['callback'];
echo $callback.'('.json_encode(obj).');';

这将成为

callback({your return data>});

你的脚本会收到它。

loadNotices({[{title: 'this is a test'},{title: 'this is another test'}]});

此函数调用不正确,请改为:

loadNotices([{title: 'this is a test'},{title: 'this is another test'}]);

然后你可以像这样遍历你的标题

for (i = 0; i < titles.length; i++){
   alert(titles[i].title);
}
于 2012-08-10T12:35:24.460 回答