iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >vue框架与koa框架通信及服务器跨域配置的示例分析
  • 908
分享到

vue框架与koa框架通信及服务器跨域配置的示例分析

2024-04-02 19:04:59 908人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Vue框架与koa框架通信及服务器跨域配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前后端框架(本例中是vue和koa)如何发送

这篇文章将为大家详细讲解有关Vue框架与koa框架通信及服务器跨域配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

后端框架(本例中是vue和koa)如何发送请求?获取响应?

以及跨域问题如何解决?

vue框架与koa框架通信及服务器跨域配置的示例分析

vue部分:

import App from './App.vue'
import AxiOS from 'axios'
new Vue({
  el: '#app',
  render: h => h(App),
  mounted(){
    Axios({
      method: 'get',
      url: 'Http://localhost:3000',
    }).then((response) => {
    console.log(response);
    })
  }
})

koa部分:

const Koa = require('koa');
const cors = require('koa-cors');
const app = new Koa();
const main = ctx => {
  ctx.response.body = 'Hello World';
};
app.use(cors());
app.use(main);
app.listen(3000);
console.log("服务已启动");

坑集锦:

1.单纯引入koa框架并且开启服务,会出现跨域错误

XMLHttpRequest cannot load http://localhost:3000/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080';; is therefore not allowed access.
bundle.js:1200 Uncaught (in promise) Error: Network Error
  at createError (bundle.js:1200)
  at XMLHttpRequest.handleError (bundle.js:1046)

2.跨域方案尝试

①引入cors模块(失败,TypeError: res.setHeader is not a function)

const cors = require('cors');
app.use(cors());

②引入koa-cors模块(成功,解决跨域问题,并正确返回数据)

const cors = require('koa-cors');
app.use(cors())

此时会在新的http response的头部信息中会新增2个字段。

Access-Control-Allow-Methods:GET,HEAD,PUT,POST,DELETEAccess-Control-Allow-Origin:http://localhost:8080

vue框架与koa框架通信及服务器跨域配置的示例分析

现在我们来宏观分析一下,跨域失败以及成功的深层次原因是什么?

客户端(http://localhost:8080)

服务端:(http://localhost:3000)

跨域请求失败是谁的原因?
服务器的原因。

为什么这么说?

因为在服务器端引入koa-cors之前,注意,是服务器端,我们的跨域访问失败。

而在服务器引入跨域请求模块koa-cors之后,而客户端没有做任何改变,跨域访问就成功了。

具体来说,就是在返回的请求头里加入了2个跨域请求的字段,上文也给出了详细的HTTP定义。

一个代表支持的请求方法,本例中是get方法。

一个代表允许使用上述方法的域,本例中是http://localhost:8080。

1.那么聪明的你就会问了,koa-cors本质上是一个node模块,这个模块是怎么做到支持跨域访问到呢?

我想koa-cors肯定调用了node模块http,其余模块暂时未知。

2.那么聪明的你又会想到,axios呢,它的内部工作原理是什么?

我想肯定用到了的XMLHttpRequest这个对象,基于XMR对象做了封装,暂且知道这么多。

3.所以说聪明的你会有一个领悟!

node模块不止是能在服务器端调用,在客户端也可以调用。

说清楚一点,就是node模块不止能够封装node.js引擎的api,而且能封装WEB V8引擎的api。

若是想问原因的话,我想是因为node是基于V8y引擎开发的服务器环境,因此v8 api基本上是通用的,暂时这么理解。

所以说,前端开发模块化编程趋势下,nodejs必须要会,因为二者都是在强大的V8引擎驱动下工作的。

最后说个微观的坑...

下面的代码中,app.use(cors());必须在app.use(main);之前。

const Koa = require('koa');
const cors = require('koa-cors');
const app = new Koa();
const main = ctx => {
  ctx.response.body = 'Hello World';
};
app.use(cors());
app.use(main);
app.listen(3000);
console.log("服务已启动");

关于“vue框架与koa框架通信及服务器跨域配置的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: vue框架与koa框架通信及服务器跨域配置的示例分析

本文链接: https://www.lsjlt.com/news/79274.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue框架与koa框架通信及服务器跨域配置的示例分析
    这篇文章将为大家详细讲解有关vue框架与koa框架通信及服务器跨域配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前后端框架(本例中是vue和koa)如何发送...
    99+
    2024-04-02
  • Java中Mybatis框架增删查改与核心配置的示例分析
    小编给大家分享一下Java中Mybatis框架增删查改与核心配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!原始JDBC操作原始jdbc操作(查询数据)原始jdbc操作(插入数据)原始jdbc操作的分析原始jd...
    99+
    2023-06-25
  • 在Vue框架中配置Mock服务器的方法
    目录在Vite项目中配置Mock服务器Vite项目的创建与目录结构配置Vite将Vite插件的设置进行分离配置Mock的接口文件目录结构工具函数编写Mock接口在组件中使用在Quas...
    99+
    2022-12-08
    Vue Mock服务器 Vue 配置Mock
  • Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析
    Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mybatis的Dao层实现传统开发...
    99+
    2023-06-25
  • java开发分布式服务框架Dubbo暴露服务的示例分析
    小编给大家分享一下java开发分布式服务框架Dubbo暴露服务的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Dubbo服务暴露机制前言在进行服务暴露机制的分析之前,必须谈谈什么是URL,在Dubbo服务暴露过程中...
    99+
    2023-06-25
  • Oracle推出轻量级Java微服务框架Helidon的示例分析
    Oracle推出轻量级Java微服务框架Helidon的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。近日,Oracle 推出 了一个新的开源框架&...
    99+
    2023-06-19
  • java开发分布式服务框架Dubbo原理机制的示例分析
    这篇文章给大家分享的是有关java开发分布式服务框架Dubbo原理机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言在介绍Dubbo之前先了解一下基本概念:Dubbo是一个RPC框架,RPC,即Re...
    99+
    2023-06-25
  • Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析
    目录Mybatis的Dao层实现传统开发方式代理开发方式MyBatis映射文件深入动态sql语句动态SQL之<if>动态SQL之<foreach>SQL片段抽...
    99+
    2024-04-02
  • vue-router history模式服务器端配置的示例分析
    小编给大家分享一下vue-router history模式服务器端配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!history路由history模式是指使用HTML5的historyAPI实现客户端路由的模式...
    99+
    2023-06-15
  • CentOS 8.0.1905 inux服务器系统安装与配置的示例分析
    这篇文章主要介绍CentOS 8.0.1905 inux服务器系统安装与配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!说明:截止目前CentOS 8.x最新版本为CentOS 8.0.1905,下面介绍...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作