1

我正在开发一个广播电子邮件模板,该模板将从 RSS 提要中从我们的博客中提取最新的三篇文章,并将相关部分插入文档中。

我查看了文档,根据关于File对象的一些信息、我自己的一些调试以及InDesign 论坛帖子,我了解到无法使用该File对象来获取在线 XML 文件。

另一种选择(不求助于外部脚本,其中一个对我来说无论如何都不起作用)似乎是使用该Socket对象。所以我回到文档并从那里逐字复制/粘贴此代码:

reply = "";
conn = new Socket;
// access Adobe’s home page
if (conn.open ("www.adobe.com:80")) {
// send a HTTP GET request
conn.write ("GET /index.html HTTP/1.0\n\n");
// and read the server’s reply
reply = conn.read(999999);
conn.close();
}

当我运行它时,我收到了以下描述性错误消息:

感谢您提供此错误消息,Adobe!

搜索“89858 javascript 错误”没有任何用处。

所以我被困住了。Adobe 的代码示例有错误,或者更有可能是我的错误。如果我不得不猜测,我猜这是某种代理问题,但我不确定,也不知道如何找出答案。

任何人都可以帮忙吗?对象的原理对Socket我来说是有意义的,但如果我连样本都不能工作,我真的没有任何地方可做。

4

1 回答 1

2

当您从函数调用返回某些对象(XML、Socket)时会发生上述错误,但返回值并未在任何地方分配。

function test() {
    var xml = new XML('<test />');
    return xml;
}
test();

以上将导致错误。要绕过它,您必须在某处分配返回值。

var result = test();

尝试把所有收集所有函数调用的结果。我不确定是哪一个导致了错误。

var reply = "";
var conn = new Socket;
// access Adobe’s home page
if (conn.open ("www.adobe.com:80")) {
    // send a HTTP GET request
    var result = conn.write ("GET /index.html HTTP/1.0\n\n");
    // and read the server’s reply
    reply = conn.read(999999);
    var close = conn.close();
}
于 2013-02-13T16:29:55.863 回答