通过AJAX从传统的Domino Web应用程序调用XAgent

时间:2014-05-14 19:09:49

标签: xpages

我已经创建了一个XAgent,它可以通过window.location工作得很好但我无法通过AJAX工作。这个代理是从弹出div上的删除按钮调用的,所以我不想在我的XAgent中写入我的responseStream,而是选择运行我的代理并在完成后通过javascript关闭我的弹出窗口。

我的XAgent由网址doc.$DBPath.value + "/xAgent_DeleteDemand.xsp?open&id=" + doc.$DocUNID.value调用,如下所示:

javascript:importPackage(foo);
try {
    var url:java.lang.String = context.getUrl().toString();
    print(url);
    if (param.containsKey("id")) {
        var unid = param.get("id");
    } else {
        throw "No unid given";
    }
    XAgent.deleteDemand(unid);
} catch (e) {
    print(e);
}

我的实际代码位于foo包中,但这似乎并不重要,因为我甚至没有打印我的网址。我可以说使用window.location生成和调用的URL工作正常,因此可以安全地假设问题出在其他地方。

我有一种潜在的怀疑,即当从非XPage应用程序通过AJAX调用时,上下文可能没有任何意义,但我不确定。

我不认为我的AJAX代码有什么特别之处,但这是以防万一。它已经很好地工作了很长时间。

function createAJAXRequest(retrievalURL, responseFunction) {
    if (window.ActiveXObject) {
        AJAXReq = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) {
        AJAXReq = new XMLHttpRequest();
    }
    showHideIndicator("block")
    var currentTime = new Date()
    AJAXReq.open("GET", retrievalURL + "&z=" + currentTime.getTime());
    AJAXReq.onreadystatechange = eval(responseFunction);
    AJAXReq.send(null);
}

1 个答案:

答案 0 :(得分:2)

我不确定最直接的问题是什么,但是作为一些故障排除步骤:

  • 结果URL仅与服务器相关,而不是在不同的服务器+协议组合上,对吧?
  • 点击按钮后,您在浏览器的调试控制台上看到了什么吗?
  • 浏览器的“调试网络”面板中是否有条目可用于请求?