XWiki请求处理(如果可能,没有表单)

时间:2015-02-04 11:19:39

标签: javascript xmlhttprequest request xwiki

除了提交HTML表单之外,是否可以在XWiki上处理请求?我需要使用XMLHttpRequest,但是$request 根本没有对请求作出反应。

JavaScript代码

function requestHandle(msg, subj) {
    var recipientName = recipientsArr.pop()[0];

    req = new XMLHttpRequest();

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200) {
                console.log('req ok');

                var mailStatusTmp = "<div class=\"mailStatus\">" + recipientName + " <span class=\"glyphicon glyphicon-ok\"/></div>";
                $('#mailStatusWrapper').append(mailStatusTmp);

                if (recipientsArr.length > 0) {
                    requestHandle(msg, subj); // call requestHandle() for next recipient
                } else {
                    return;
                }
            } else {
                console.log('req err');

                var mailStatusTmp = "<div class=\"mailStatus\">" + recipientName + " <span class=\"glyphicon glyphicon-remove\"/></div>";
                $('#mailStatusWrapper').append(mailStatusTmp);

                if (recipientsArr.length > 0) {
                    requestHandle(msg, subj); // call requestHandle() for next recipient
                } else {
                    return;
                }
            }
        }
    };

    req.open("POST", "https://wiki.intra.tieto.com/xwiki/bin/view/Sandbox/TestPage1", true);
    req.send("msg=" + msg + "&subj=" + subj + "&recipientName=" + recipientName);
}

我想使用XMLHttpRequest,因为页面会将数据发送到多个接收器,我需要检查每个请求的状态。

1 个答案:

答案 0 :(得分:0)

如果发出请求的页面与XWiki实例不在同一个域中,则可能必须将目标域配置为接受cross-origin个请求。这在XWiki方面并不容易,因为没有响应OPTION请求的机制,但是如果您使用前端(例如Apache HTTPDnginx),则很容易配置,或者在servlet容器的配置中,例如在TomcatJetty