我已经创建了一个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);
}
答案 0 :(得分:2)
我不确定最直接的问题是什么,但是作为一些故障排除步骤: