Javascript 无法从url获取响应图像

Javascript 无法从url获取响应图像,javascript,express,Javascript,Express,我将图像url输入作为查询参数,并进一步尝试在我的语言环境中从中下载图像,然后在响应时发送它(然后在本地删除图像,但现在不需要)。找到完整的源代码 我试图点击的端点url是 我在浏览器控制台上遇到的错误是,服务器日志上没有错误: [HTTP/1.1 404找不到1ms] 内容安全策略:页面的 设置阻止在加载资源 http://localhost:8082/favicon.ico (“默认src”) 从“express”导入express; 从“body parser”导入bodyParser

我将图像url输入作为查询参数,并进一步尝试在我的语言环境中从中下载图像,然后在响应时发送它(然后在本地删除图像,但现在不需要)。找到完整的源代码

我试图点击的端点url是

我在浏览器控制台上遇到的错误是,服务器日志上没有错误:

[HTTP/1.1 404找不到1ms]

内容安全策略:页面的 设置阻止在加载资源 http://localhost:8082/favicon.ico (“默认src”)

从“express”导入express;
从“body parser”导入bodyParser;
从“/util/util”导入{filterImageFromURL,deleteLocalFiles};
(异步()=>{
//初始化Express应用程序
常量app=express();
//设置网络端口
const port=process.env.port | | 8082;
//对post请求使用主体解析器中间件
use(bodyParser.json());
const{expresscsp-header,INLINE,NONE,SELF}=require('express-csp-header');
app.use(expressCspHeader)({
指令:{
“默认src”:[SELF],
'img src':['data:','images.com'],
“worker src”:[无],
“阻止所有混合内容”:false
}
}));
//@TODO1实现RESTFUL端点
//GET/filteredimage?图像_url={{url}
//用于从公共url筛选图像的端点。
//它应该
//    1
//1.验证图像\u url查询
//2.调用filterImageFromURL(图像\ url)来过滤图像
//3.在响应中发送结果文件
//4.在响应完成时删除服务器上的所有文件
//查询参数
//image\u url:可公开访问的图像的url
//返回
//过滤后的图像文件[!!TIP res.sendFile(filteredpath);可能有用]
/**************************************************************************** */
app.get(“/filteredimage?image_url={{{url}}”),异步(req,res)=>{
控制台。登录(“登录”);
设{image_url}=req.params.image_url;
//验证url
const isValideUrl=image\u url.match(/(http(s):\/\/)?(www\)?[-a-zA-Z0-9:%.\+~\=]{2256}.[a-z]{2,6}\b([-a-zA-Z0-9:%\+.~ \?&/=]*)/g);
if(isValideUrl==null)
返回res.status(400).send(`Inavlid url!使用有效url`)重试;
否则{
//处理图像
const filteredImage=filterImageFromURL(图像url);
if(filteredImage==undefined | | filteredImage==null)
返回res.status(400).send(`无法过滤图像');
其他的
返回res.status(200).sendFile(filteredImage+“”);
}
})
//!结束@TODO1
//根端点
//向用户显示一条简单的消息
app.get(“/”,异步(req,res)=>{
res.send(“try GET/filteredimage?image_url={{}”)
} );
//启动服务器
应用程序侦听(端口,()=>{
console.log(`server runninghttp://localhost:${port}`);
log(`按CTRL+C停止服务器');
} );

})();我会这样声明路线:

app.get("/filteredimage", async(req, res) => {})
您的URL方案:
/filteredimage/?image\u URL=


然后,您可以使用
req.query.image\u url

内容安全策略访问源代码中的图像url:页面设置阻止在http://localhost:8082/favicon.ico (“默认src”)。
与此无关。你试过点击另一个错误吗?将会有更多关于它的信息。你的两个代码片段都不起作用。两者都说:“未捕获的SyntaxError:无法在模块外使用导入语句”I@ControlAltDel代码段在浏览器上不起作用,因为它是项目,需要安装依赖项,而依赖项在我的语言环境中起作用。您可以提取代码,然后再试一次,它会起作用。@Rojo关于内容安全策略错误解决方案,我已经添加了代码-您可以在server.ts文件中的“我的代码”中找到。我已经按照要求进行了解析,但它不起作用。如果我没有使用“/filteredimage/:image_url”`或“/filteredimage?image_url=然后将能够获取输入图像url。抱歉,我弄错了。对于req.params,您需要:image_url,但如果您只使用GET参数,则不需要在url方案中声明它。请看一下我更新的答案。然后你可以用
if(req.query.image\u url)
快速检查一下,以验证是否设置了查询参数。在您的示例中,由于您的路由定义与浏览器地址栏中提供的url不一致,因此无法从Express中获取错误。
app.get("/filteredimage", async(req, res) => {})