除了提交HTML表单之外,是否可以在XWiki上处理请求?我需要使用XMLHttpRequest,但是$request
根本没有对请求作出反应。
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,因为页面会将数据发送到多个接收器,我需要检查每个请求的状态。
答案 0 :(得分:0)
如果发出请求的页面与XWiki实例不在同一个域中,则可能必须将目标域配置为接受cross-origin个请求。这在XWiki方面并不容易,因为没有响应OPTION
请求的机制,但是如果您使用前端(例如Apache HTTPD或nginx),则很容易配置,或者在servlet容器的配置中,例如在Tomcat或Jetty。