javascript-将参数附加到api请求?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-将参数附加到api请求?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1661字,纯文字阅读大概需要3分钟。
内容图文
![javascript-将参数附加到api请求?](/upload/InfoBanner/zyjiaocheng/650/6040ffff06f64639abaf991373bdce1c.jpg)
我有一个被调用的方法,传递了一个文件名,然后对后端进行API调用以获取预授权的链接.我正在尝试将参数(文件名)附加到URL的末尾,但这导致我的API请求到达404.
如何在API请求中正确传递参数并在响应中获取预授权的URL?
我的文件名也可能包含空格,我怀疑这可能与返回404的请求有关.
这是我前端的电话:
getPreauthorizedLink(fileName) {
console.log(fileName);
var fileName = fileName;
var url = 'reportPresignedURL/' + fileName;
fetch(config.api.urlFor(url))
.then((response) => response.json())
.then((url) => {
console.log(url);
});
}
这是该API在后端的实现:
reports.get('/reportPresignedURL/:fileName', async (req, res) => {
const subscriberID = req.query.subscriberID || 0;
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var params = {
Bucket: config.reportBucket,
Key: req.params.fileName,
Expires: 60 * 5
}
try {
s3.getSignedUrl('getObject', params, function (err, url) {
if(err)throw err;
console.log(url)
res.json(url);
});
} catch (err) {
res.status(500).send(err.toString());
}
});
我已经尝试通过在前端执行以下操作来将问题隔离到如何传递参数:
getPreauthorizedLink(fileName){
console.log(fileName);
var fileName = fileName;
var testFileName = 'test';
var url = 'reportPresignedURL/' + testFileName.replace(/ /g, '%20').replace(/\//g, '%2F');
fetch(config.api.urlFor(url))
.then((response) => response.json())
.then((url) => {
console.log(url);
});
}
这是我在config.js中指定API路由的方式:
reportPresignedURL: '/reports/reportPresignedURL',
我也尝试过这样指定它:
reportPresignedURL: '/reports/reportPresignedURL/:fileName',
供您参考,我已将此API路由添加到前端的config.js中.
解决方法:
您可以使用es6语法
let url = reportPresignedURL / ${fileName};
用于查询参数
let url = reportPresignedURL /?fileName = ${fileName};
内容总结
以上是互联网集市为您收集整理的javascript-将参数附加到api请求?全部内容,希望文章能够帮你解决javascript-将参数附加到api请求?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。