正在尝试上载用户图像,但未成功。
HTML:
前端JS:
var fileInput = document.getElementById('gg_test_input');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append("file", file);
xhr.open('POST', '/gg_upload');
xhr.send(formData);
});
我们向其发送请求的Node.js:
function(req,res){ var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
if( err ) throw err;
unirest.post('http://httpbin.org/post')
.header("X-Mashape-Key", "MASHAPE_KEY")
.header("Authorization", "clientID_KEY")
.attach('file', files.file.path)
.end(function (response) {
console.log(response.status, response.headers, response.body);
});
});
}
但我得到的只是:
403 { 'access-control-allow-headers': 'Authorization, Content-Type, Accept, X-Mashape-Authorization',
'access-control-allow-methods': 'GET, PUT, POST, DELETE, OPTIONS',
'access-control-allow-origin': '*',
'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
'content-type': 'application/json',
date: 'Sat, 15 Nov 2014 10:01:20 GMT',
etag: '"********************************************"',
server: 'Mashape/5.0.5',
'x-ratelimit-requests-limit': '12500',
'x-ratelimit-requests-remaining': '12468',
'x-ratelimit-uploads-limit': '1250',
'x-ratelimit-uploads-remaining': '1248',
'content-length': '110',
connection: 'keep-alive' } { data:
{ error: 'Malformed auth header',
request: '/3/image',
method: 'POST' },
success: false,
status: 403 }
但是当使用这个curl测试auth时,它工作正常:
curl -X POST --include "https://imgur-apiv3.p.mashape.com/3/image" -H "X-Mashape-Key: MASHAPE_KEY" -H "Authorization: Client-ID clientID_KEY" -F "image=@/home/user/Desktop/face.jpg"
请问,unirest.post是什么?我需要提供更多信息吗?
发布于 2015-10-16 16:11:54
不幸的是,Mashape上的Node.js示例代码是错误的,您应该使用以下代码:
var unirest = require('unirest');
unirest.post("https://imgur-apiv3.p.mashape.com/3/image")
.header("X-Mashape-Key", "MASHAPE_KEY")
.header("Authorization", "Client-ID CLIENT_ID")
.header("Content-Type", "multipart/form-data")
.attach("image", "/Users/example/Projects/imgur/test_image.jpeg")
.end(function (result) {
console.log(result.status, result.headers, result.body);
});
发布于 2014-12-09 01:49:15
您的客户端ID报头格式不正确(与cURL相比),如果您修复了它,它将正常工作
https://stackoverflow.com/questions/26944694
复制相似问题