使用Fullcalendar 4.x,是否可以在获取事件时添加“ X-Requested-With:XMLHttpRequest”标头?
我以这种方式设置事件源:
calendar.addEventSource({ url: ev_url, id: 'default' });
一切正常,请求已正确发送,但是我提到的标头丢失了(在服务器端,我们要求该标头存在)。
我尝试将以下内容添加到addEventSource:
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
}
我尝试的另一件事是将其添加到js文件中(由于Fullcalendar 4不再使用jquery了,所以可能毫无意义吗?):
$.ajaxSetup({
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
}
});
不幸的是,这两种解决方案都不起作用。
过去,使用fullcalendar 3.x时,请求事件时会出现该标头。我猜那是因为JQuery是自动添加它的。
答案 0 :(得分:0)
我也在寻找答案。我修改了FullCalendar main.js文件,该文件虽然不理想,但却可以解决问题!
我在4242行附近修改了文件@,以下是该函数的完整源代码:
/*! FullCalendar Core Package v4.3.1
function requestJson(method, url, params, successCallback, failureCallback) {
method = method.toUpperCase();
// Set Headers From Params to own varaible
var headers;
if(params.hasOwnProperty('headers') && Array.isArray(params.headers)){
headers = params.headers;
// Remove them from the params object
delete params.headers;
}
var body = null;
if (method === 'GET') {
url = injectQueryStringParams(url, params);
}
else {
body = encodeParams(params);
}
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
// Create Headers If Avaiable
if(typeof headers !== "undefined"){
for(var key in headers){
if (!headers.hasOwnProperty(key)) continue;
var obj = headers[key];
for(var prop in obj){
if (!obj.hasOwnProperty(prop)) continue;
xhr.setRequestHeader(prop, obj[prop]);
}
}
}
if (method !== 'GET') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
xhr.onload = function () {
if (xhr.status >= 200 && xhr.status < 400) {
try {
var res = JSON.parse(xhr.responseText);
successCallback(res, xhr);
}
catch (err) {
failureCallback('Failure parsing JSON', xhr);
}
}
else {
failureCallback('Request failed', xhr);
}
};
xhr.onerror = function () {
failureCallback('Request failed', xhr);
};
xhr.send(body);
}
要使用它,我只需向extraParams对象添加标头键,如下所示:
extraParams = {
action: 'get_event',
headers: [
{"X-Requested-With":"XMLHttpRequest"}
]
};
这样,您可以根据需要添加任意数量的额外标题。