我正在使用 slim cropper 在我的 codeigniter 项目上上传头像,它在我的本地主机上完美运行,但在服务器上,对执行图像上传的 php 的 ajax 调用不断给出 403 禁止错误,下面是代码部分:
function send(url, data, progress, success, err) {
var xhr = new XMLHttpRequest();
if (progress) {
xhr.upload.addEventListener('progress', function (e) {
progress(e.loaded, e.total);
});
}
xhr.open('POST', url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var text = xhr.responseText;
// if no data returned from server assume success
if (!text.length) {
success();
return;
}
// catch possible PHP content length problem
if (text.indexOf('Content-Length') !== -1) {
err('file-too-big');
return;
}
// if data returned it should be in suggested JSON format
var obj = null;
try {
obj = JSON.parse(xhr.responseText);
} catch (e) {}
success(obj || text);
} else if (xhr.readyState === 4) {
err('fail');
}
};
xhr.send(data);
}
根据我的阅读,提供 CSRF 令牌可能会解决问题,但请求是从同一个域发出的,我不需要在我的本地主机上这样做。可能是什么问题呢?