请求方法显示选项而不是开机自检
Request Method showing OPTIONS instead of POST
我正在做一个项目,我将把一个文件上传到s3。我正在使用XMLHttpRequest向s3提交发布请求,它给了我403禁止状态。当我检查我在Firebug中发出的请求时,它显示"请求方法:选项",并且它应该是POST请求。
这是我下面的代码:
function GetXmlHttpObject () {
var xmlHttp = null;
try {
// Firefox, Opera 8.0+, Safari, IE 7+
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer - old IE - prior to version 7
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function uploadFile() {
console.log(AWSAccessKeyId);
var file = document.getElementById('file').files[0];
var fd = new FormData();
var key = "events/" + (new Date).getTime() + '-' + file.name;
fd.append('key', key);
fd.append('acl', 'public-read');
fd.append('Content-Type', file.type);
fd.append('AWSAccessKeyId', AWSAccessKeyId);
fd.append('policy', policyBase64)
fd.append('signature', signature);
fd.append("file",file);
var xhr = GetXmlHttpObject();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open('POST', 'https://'+bucket+'.s3.amazonaws.com/', true); //MUST BE LAST LINE BEFORE YOU SEND
xhr.setRequestHeader("Content-type","multipart/form-data");
xhr.send(fd);
}
我被困在这里。T__T。
您正在触发预检请求。浏览器正在发出 OPTIONS 请求,以确保在发出 POST 请求之前它有权(通过 CORS(访问服务器。
您必须将存储桶配置为支持带有预检请求的 CORS,如 Amazon 自己的文档中所述。
相关文章:
- 开机自检无法正常工作,出现错误
- 类型错误:无法读取开机自检后未定义的属性“正文”(平均值)
- 在 AngularJS 和 CodeIgniter3 中开机自检数据时出现 CORS 错误
- html 开机自检数据未发送
- 快递.js开机自检空要求正文
- 取消选中通过开机自检 [] 中的回显选中的复选框
- 通过开机自检将 XML 发送到另一台服务器
- 控制器中的 MVC3 自动完成和开机自检方法
- 角度 UI 模式开机自检
- 控制器操作参数未从 AJAX 开机自检正确填充
- 王牌编辑器 - 通过开机自检在服务器上保存/发送会话
- ASP.NET Web API 2 - 如何开机自检
- 无法向服务器发送开机自检请求
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 默认$resource开机自检数据
- 尝试开机自检“选择”HTML表单输入时出现PHP错误
- 开机自检时重定向
- JSON 数组导致开机自检后出现额外的括号
- 请求方法显示选项而不是开机自检
- 静止角度开机自检失败 https:// 选项通过