Question

I have an XAgent I have created that works just fine via window.location but I can't get it to work via AJAX. This agent is called from a delete button on a popup div, so rather than writing to my responseStream in my XAgent, I'd prefer to just run my agent and close my popup via javascript when it is finished.

My XAgent is called by the URL doc.$DBPath.value + "/xAgent_DeleteDemand.xsp?open&id=" + doc.$DocUNID.value and looks like this:

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);
}

My actual code is in the foo package but that doesn't seem relevant because I'm not even getting my URL printed. I can say the the URL being generated and called works just fine using window.location so it is safe to assume that the problem is elsewhere.

I have a sneaking suspicion that maybe context doesn't have any meaning when called via AJAX from a non XPage app, but I don't know for sure.

I don't think there is anything special about my AJAX code but here it is just in case. It has been working fine for a long time.

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);
}
Was it helpful?

Solution

I'm not sure what the immediate problem would be, but as some troubleshooting steps:

  • The resultant URL is just server-relative and not on a different server+protocol combination, right?
  • Do you see anything on the browser's debug console when clicking the button?
  • Is there an entry in the browser's debug Network panel for the request at all?
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top