kinvey 休息 api 上传
kinvey rest api upload
我正在尝试使用 REST API 方法在 Kinvey 上上传。
向https://baas.kinvey.com/blob/:myAppId
发送'POST'请求后,我可以成功获取google存储URLlink
问题是当我向 google 存储 URL 发送 'PUT' 请求时,出现此错误:
XMLHttpRequest cannot load (my storage.google URL). Response to
preflight request doesn't pass access control check: No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin (my localhost) is therefore not allowed access.
这似乎是一个相当标准的 CORS 错误(您可以在此处阅读更多相关信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS ) , which takes place when you are making a cross-origin request. There's a lot of different ways that you can approach this issue, but the easiest would probably be to use one of our SDK's to help you. If you take a look over at 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 发挥它的魔力。这应该可以为您解决 CORS 的所有问题。
谢谢,
我正在尝试使用 REST API 方法在 Kinvey 上上传。
向https://baas.kinvey.com/blob/:myAppId
发送'POST'请求后,我可以成功获取google存储URLlink问题是当我向 google 存储 URL 发送 'PUT' 请求时,出现此错误:
XMLHttpRequest cannot load (my storage.google URL). Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin (my localhost) is therefore not allowed access.
这似乎是一个相当标准的 CORS 错误(您可以在此处阅读更多相关信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS ) , which takes place when you are making a cross-origin request. There's a lot of different ways that you can approach this issue, but the easiest would probably be to use one of our SDK's to help you. If you take a look over at 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 发挥它的魔力。这应该可以为您解决 CORS 的所有问题。
谢谢,