码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前后端分离 + 跨域 + 跨域的解决办法


    目录

    前后端分离

    跨域

    跨域的解决办法

    1.cors:需要用到egg-cors这个第三方模块

    2.jsonp

    3.proxy(代理)


    前后端分离

    看前端代码放在别人服务器上面怎么操作去到:

    http://t.csdn.cn/4nPZR

    前端代码要放在一个服务器里面,后端代码也要放在服务器里面,这样才可以被访问到。

    前端代码放在web服务器里面(提供网页访问的服务器)。

    egg框架创建的服务器,虽然可放前端代码,也可放后端代码,但是如果想前后端分离,那就把后端代码放egg服务器里面,然后前端代码放另外的服务器里面(可以自己写一个服务器,也可以放到别人写好的服务器里面:Apache或者Nginx)。我这里前端代码就放在别人写的服务器上面Apache或者Nginx。

     这时需要打开一个新的vscode界面去放我们的前端项目。原来的vscode放我们的后端项目。

    这种前后端分离的话,很容易会产生跨域的问题。

    跨域

    ajax请求限制在同源的(同源:域名,协议,端口相同就是同源)

    跨域:协议,域名,端口任意一个不同就会产生跨域。

    前端:Apache服务器  访问:http://127.0.0.1:80

    后端:egg服务器  访问:http://127.0.0.1:8000

     分析:它们的端口不同,所以跨域。

    跨域的解决办法

    1.cors:需要用到egg-cors这个第三方模块

    框架提供了 egg-cors 插件来实现cors跨域请求。

    下载:npm  i --save egg-cors

    然后再:

    1. //开启插件:在 config/plugin.js
    2. //跨域处理
    3. cors: {
    4. enable: true,
    5. package: 'egg-cors',
    6. }

    还要再:(后端服务器代码改变后要重启服务器)

    前后端不分离用这个:

    1. //配置cors:在 config/config.default.js
    2. // 跨域的配置
    3. config.cors = {
    4. origin: '*', //允许的域,*代表所有的
    5. allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH' //允许跨域的请求方法
    6. };

    分析: * 表示不管前端代码放在哪个服务器上面都可以来访问egg后端服务器。也可以设置允许某个特定的域来访访问。

    前后端分离用下面这个:

    1. //配置cors:在 config/config.default.js
    2. // 跨域的配置
    3. config.cors = {
    4. // origin: '*', //允许的域,*代表所有的
    5. origin: 'http://127.0.0.1', //如果想携带cookie,这里必须指定前端服务器ip和端口号
    6. allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH', //允许跨域的请求方法
    7. credentials:true //后端允许跨域携带cookie
    8. };

    2.jsonp

    3.proxy(代理)

  • 相关阅读:
    python+selenium实现web自动化(基础入门)
    论文阅读-2 | Meta-Learning with Task-Adaptive Loss Function for Few Shot Learning
    快速排序和归并排序非递归的详解
    2022-09-16 第二小组 张明旭 Java学习记录
    力扣练习——59 从二叉搜索树到更大和树
    AcWing周赛76场 && LeetCode单周赛318场
    前端开发:CSS选择器详解
    Listen,Attend,and Spell(LAS)——李宏毅人类语言处理学习笔记3
    网站为什么要备案?网站备案流程是什么?
    Golang字符串类型原理及其使用方法
  • 原文地址:https://blog.csdn.net/weixin_47075145/article/details/126634381
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号