我试图使用REST方法在Kinvey上上传。
在向https://baas.kinvey.com/blob/:myAppId发送“POST”请求后,我可以成功地获得google链接
问题是,当我向google存储URL发送“PUT”请求时,我会得到以下错误:
XMLHttpRequest无法加载(我的storage.google URL)。对飞行前请求的响应不会通过访问控制检查:请求的资源上没有“访问-控制-允许-原产地”标题。因此,不允许访问原产地(我的本地主机)。
发布于 2016-02-09 16:37:15
这似乎是一个相当标准的CORS错误(您可以在这里更多地阅读这个错误:CORS ),这是在您提出跨源请求时发生的。有很多不同的方法可以解决这个问题,但最简单的方法可能是使用我们的SDK之一来帮助您。如果您查看一下http://devcenter.kinvey.com/html5/downloads,您会发现可以在项目中包含一个SDK,并在顶部导航中为其提供指南/文档。
使用HTML5库上传的文件也相当琐碎。下面是我编写的一些示例代码:
HTML部分:
<input type="file" name="_file" id="_file" onchange="fileSelected();" />
<div id="fileinfo">
<div id="filename"></div>
<div id="filetype"></div>
</div>Javascript部分:
function fileSelected(){
var oFile = document.getElementById('_file').files[0];
var oReader = new FileReader();
oReader.onload = function(e) {
document.getElementById('fileinfo').style.display = 'block';
document.getElementById('filename').innerHTML = 'Name: ' + oFile.name;
document.getElementById('filetype').innerHTML = 'Type: ' + oFile.type;
};
oReader.readAsDataURL(oFile);
fileUpload(oFile);
}
function fileUpload(file) {
var file = document.getElementById('_file').files[0];
var promise = Kinvey.File.upload(file,{
filename: document.getElementById('fileinfo').toString(),
mimetype: document.getElementById('filetype').toString()
})
promise.then(function() {
alert("File Uploaded Successfully");
}, function(error){
alert("File Upload Failure: " + error.description);
});
}对于每个Kinvey的Javascript库,这将略有不同,但应该遵循大致相同的大纲。获取文件,异步调用Kinvey.File.Upload,让SDK执行它的魔力。这应该可以为你处理所有的丑事。
谢谢,
https://stackoverflow.com/questions/35285825
复制相似问题