`

Koa2.5 做图片服务器转发解决跨域最佳实战

    博客分类:
  • Koa
阅读更多

背景:

2018-04-11写道
由于前端在加载非本域名的图片或其他文件资源,会报跨域问题,基于这个问题出发点,想到nodejs koa框架做静态资源转发功能。

 

跨域报错如下:

1597:1 Access to Image at 'https://xxx.com/static/image/9985@bg.jpeg?' 
from origin 'https://xxx.com' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested 
resource. Origin 'https://xxx.com' is therefore not allowed access.

  

 

实战:

按照必须的依赖包:主要是request module:

 

$ npm i -D koa koa-router request

那我们就做一个转发服务器吧:

/**
 * Created by happy on 4/10/18.
 */
var Koa = require('koa');
var Router = require('koa-router');
var request = require('request');

var app = new Koa();
var router = new Router();
var port = 7788;

router.get('/', (ctx, next) => {
  ctx.body = 'hello';
});

// 这里是愉快的做静态资源转发
router.get('/static', (ctx, next) => {
  ctx.body = request.get(ctx.url.replace('/image?', ''));
});

app
  .use(router.routes())
  .use(router.allowedMethods())
  .listen(port, () => console.log(`✅  The server is running at http://localhost:${port}`));

// 访问:localhost:7788/static?xxx跨域服务器资源

 

 

总结:

本来准备使用fetch获取文件流,奈何看了官网所有API尝试皆以失败告知,故使用request获取文件流。

分享到:
评论

相关推荐

    xmlhttp跨域解决方案

    总之,通过代理服务器解决XMLHttpRequest的跨域问题是一种常见且有效的方法。它需要在服务器端进行适当的配置和编程,以转发请求并处理响应,同时注意安全性的保障。对于Java开发者来说,掌握Spring MVC或其他相关...

    Koa2 实现api服务器 发请求接收Json

    **Koa2 实现API服务器 发请求接收Json** 在现代Web开发中,API(应用程序编程接口)服务器扮演着至关重要的角色,它们允许不同系统之间进行数据交换。Koa2是Node.js的一个轻量级框架,它由Express团队成员创建,...

    koa-graphql, 使用Koa创建 GraphQL HTTP服务器.zip

    koa-graphql, 使用Koa创建 GraphQL HTTP服务器 GraphQL Koa中间件 创建一个带有Koa的GraphQL HTTP服务器。来自 express graphql的端口安装npm install --save koa-graphql用法

    客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解

    本篇文章将深入探讨Vue与Koa通信以及如何解决跨域问题。 首先,Vue部分通过引入Axios库来发起HTTP请求。在示例代码中,Vue组件在挂载完成后,利用Axios的`get`方法向服务器发送请求。Axios是一个基于Promise的HTTP...

    基于KOA的简易图片上传服务器.zip

    在本项目"基于KOA的简易图片上传服务器.zip"中,开发者使用了JavaScript语言和KOA框架构建了一个简单的图片上传服务器。KOA是Node.js环境下的一款轻量级Web框架,由Express团队的成员创建,旨在提供更加简洁和灵活的...

    doc解决跨域问题.pdf

    "doc解决跨域问题.pdf"文档中介绍的是如何在基于Koa的后端项目中处理这个问题。Koa是一个由Express.js作者创建的现代JavaScript Web框架,它提供了一种更简洁的方式来处理HTTP请求。 首先,项目初始化是必要的,这...

    Node.js-Koa2RESTfulAPI服务器脚手架

    **Node.js-Koa2 RESTful API服务器脚手架** Node.js是JavaScript运行环境,它让开发者可以在服务器端使用JavaScript编写代码,极大地提升了Web应用的开发效率。Koa2是建立在Node.js上的一个轻量级的Web应用框架,由...

    基于koa2框架实现的API网关,使用koa2框架的中间件机制提供插件功能

    本项目是基于koa2框架实现的API网关,使用koa2框架的中间件机制提供插件功能。通过使用微信公众号、服务注册&发现、反向代理等等插件的组合,来有效解决来自不同客户端和服务器请求的统一接入、分发、监控等问题

    浅谈Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。 本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明(深层次的配置我也不会)。 CORS将请求分为简单请求和非简单...

    为 vue-admin 后台系统搭配的 koa2+mongodb 服务器系统.zip

    Vue-Admin 后台管理系统与 Koa2+MongoDB 服务器系统的整合是现代Web开发中的常见实践,尤其在毕业设计项目中。这个压缩包文件"为 vue-admin 后台系统搭配的 koa2+mongodb 服务器系统.zip"包含了构建一个高效、可扩展...

    js+koa2 实现上传下载预览功能

    在本项目中,我们将探讨如何使用JavaScript(JS)与Koa2框架来构建一个支持文件上传、下载和预览功能的简易应用。这个项目特别适合初学者,因为它的实现过程清晰明了,易于理解。 首先,Koa2是Node.js平台上的一个...

    koa 与 node.js 开发实战2

    一本介绍web开发框架koa的书,Node.js诞生于2009年,到本书出版时已经有近10个年头。它扩充了JavaScript的应用范围,使JavaScript也能像其他语言一样操作各种系统资源,因此,前端工程化开发的大量工具都开始运行在...

    Node.js-完整的Koa2服务器样板包括es6REST示例静态示例

    "Node.js-完整的Koa2服务器样板包括es6 REST示例静态示例"是一个包含Node.js、Koa2框架、ES6语法以及RESTful API和静态文件服务的项目模板。这个模板可以作为一个基础,帮助开发者快速搭建自己的Web应用,同时提供了...

    yxdYXD11123123#Frontend-Road#Koa入门+Koa路由+静态资源托管+洋葱模型概念+解决跨域1

    介绍koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的Web框架使用 koa 编写 web 应用,可以免除重复繁琐的回调函数

    koa 与 node.js 开发实战完整版

    一本介绍web开发框架koa的书,Node.js诞生于2009年,到本书出版时已经有近10个年头。它扩充了JavaScript的应用范围,使JavaScript也能像其他语言一样操作各种系统资源,因此,前端工程化开发的大量工具都开始运行在...

    Koa代理Http请求的示例代码

    在本文中,我们将深入探讨如何使用Koa框架作为HTTP代理来解决跨域问题,并通过示例代码展示具体的实现步骤。Koa是Node.js生态中的一个轻量级Web服务器框架,它允许开发者通过JavaScript轻松地构建自己的Web应用。 1...

    koa examples koa官方例子

    《Koa框架实战:官方示例解析》 Koa,作为JavaScript的一个Web应用框架,以其轻量级和高效性在Node.js社区中备受推崇。它由Express团队成员创建,旨在提供更加优雅和灵活的Web服务开发体验。在这个“Koa官方例子”...

    使用Koa和Bookshelf的NodejsAPI服务器启动器

    标题"使用Koa和Bookshelf的NodejsAPI服务器启动器"指出,这个项目是一个基于Node.js的API服务器实现,它利用了Koa和Bookshelf这两个库。Koa是Express的轻量级替代品,由Node.js核心团队成员创建,提供了更简洁的异步...

    技术-胖Koa+Node商城实战.zip

    技术-胖Koa+Node商城实战

Global site tag (gtag.js) - Google Analytics