当前位置: 首页 > news >正文

做网站找哪家好?聚禄鼎科技是一家给企业做网站的公司网站开发步骤说明书

做网站找哪家好?聚禄鼎科技是一家给企业做网站的公司,网站开发步骤说明书,陕西省建设厅网站劳保统筹基金,做路线图的网站目录 1、浏览器的同源策略 1.1 源 1.2 同源与非同源 1.3 同源请求与非同源请求 2、跨域受到的限制 3、注意点 4、CORS解决Ajax跨域问题 4.1 CORS概述 4.2 CORS解决简单请求跨域 4.3 简单请求与复杂请求 4.4 CORS解决复杂请求跨域 4.5 借助CORS库快速完成配置 5、JS…目录 1、浏览器的同源策略 1.1 源 1.2 同源与非同源 1.3 同源请求与非同源请求 2、跨域受到的限制 3、注意点 4、CORS解决Ajax跨域问题 4.1 CORS概述 4.2 CORS解决简单请求跨域 4.3 简单请求与复杂请求 4.4 CORS解决复杂请求跨域 4.5 借助CORS库快速完成配置 5、JSONP解决跨域  6、配置代理解决跨域 6.1 自己配置代理服务器 6.2 使用Nginx搭建代理服务器 6.3 借助脚手架搭建代理服务器 1、浏览器的同源策略 浏览器为了确保资源安全而遵循的一种策略。 1.1 源 源 协议 域名 端口号 1.2 同源与非同源 1.3 同源请求与非同源请求 所处源与目标源不一致就是非同源又称异源或跨域 2、跨域受到的限制 例如源A和源B它们是非同源则浏览器会有如下限制 DOM访问限制源A的脚本不能读取和操作源B的DOMCookie访问限制源A不能访问源B的cookieAjax响应数据限制源A可以给源B发请求但是无法获取源B的响应的数据 备注在上述限制中浏览器对Ajax获取数据的限制是影响最大的一个且实际开发中经常遇到 3、注意点 跨域限制仅存在浏览器端服务端不存在跨域限制即使跨域了Ajax请求也可以正常发出但响应数据不会交给开发者link、script、img....这些标签发出的请求也可能跨域只不过浏览器对标签跨域不做严格限制对开发几乎无影响 4、CORS解决Ajax跨域问题 4.1 CORS概述 CORS全称Cross-Origin Resource Sharing跨域资源共享是用于控制浏览器校验跨域请求的一套规范服务器依照CORS规范添加特定响应头来控制浏览器校验规则如下 服务器明确表示拒绝跨域请求或没有表示则浏览器校验不通过服务器明确表示允许跨域请求则浏览器校验通过 备注使用CORS解决跨域是最正统的方式且要求服务器是“自己人” 4.2 CORS解决简单请求跨域 整体思路服务器在给出响应时通过添加Access-Control-Allow-Origin响应头来明确表达允许某个源发起跨域请求随后浏览器在校验时直接通过 服务端核心代码以express框架为例 const express require(express)const app express()const data [{ id: 123, name: 张三 },{ id: 456, name: 李四 },{ id: 789, name: 赵云 }, ] app.get(/student, (req, res) {res.setHeader(Access-Control-Allow-Origin, http://127.0.0.1:5500)res.send(data) })app.listen(1234, () {console.log(服务运行中...) })4.3 简单请求与复杂请求 CORS会把请求分为两类、分别是简单请求、复杂请求 简单请求复杂请求请求方法为GET、HEAD、POST 不是简单请求就是复杂请求复杂请求会自动发送预检请求 请求字段要符合《CORS安全规范》 简记只要不手动修改请求头一般都能符合改规范 请求头的Content-Type的值只能是以下三种 text/plainmultipart/form-dataapplication/x-www-form-urlencoded 关于预检请求 发送时机预检请求再实际跨域请求之前发出是由浏览器自动发起的主要作用用于向服务器确认是否允许接下来的跨域请求基本流程先发起OPTIONS请求如果通过预检继续发起实际的跨域请求请求头内容一个OPTIONS预检请求通常会包含如下请求头 请求头含义Origin      发起请求的源Access-Control-Request-Method实际请求的HTTP方法Access-Control-Request-Headers实际请求中使用的自定义头如果有的话 4.4 CORS解决复杂请求跨域 1、第一步服务器先通过浏览器的预检请求服务器需要返回如下响应头 响应头含义Access-Control-Allow-Origin允许的源Access-Control-Allow-Methods允许的方法Access-Control-Allow-Headers允许的自定义头 Access-Control-Max-Age 预检请求的结果缓存时间可选 服务端核心代码 const express require(express)const app express()const data [{ id: 123, name: 张三 },{ id: 456, name: 李四 },{ id: 789, name: 赵云 }, ]app.options(/student, (req, res) {res.setHeader(Access-Control-Allow-Origin, http://127.0.0.1:5500)res.setHeader(Access-Control-Allow-Method, GET)res.setHeader(Access-Control-Allow-Headers, a,b,c)res.setHeader(Access-Control-Allow-Age, 9000)res.send() })app.get(/student, (req, res) {res.setHeader(Access-Control-Allow-Origin, http://127.0.0.1:5500)res.send(data) })app.listen(1234, () {console.log(服务运行中...) })4.5 借助CORS库快速完成配置 上述的配置中需要自己配置响应头或者需要自己手动封装中间件借助cors库可以更方便完成配置 1、安装cors npm i cors 2、简单配置 app.use(cors()) 3、完整配置 const corsOption {origin: http://127.0.0.1:5500, // 允许的源methods: [GET, POST, PUT, DELETE, HEAD, OPTIONS], // 允许的方法allowedHeaders: [], // 允许的自定义头exposedHeaders: [], // 要暴露的响应头optionsSuccessStatus: 200, // 预检请求成功的状态码 } app.use(cors(corsOption)) 5、JSONP解决跨域  1、JSONP概述JSONP是利用了script标签可以跨域加载脚本且不受严格限制的特性可以说是程序员智慧的结晶早起一些浏览器不支持CORS时可以靠JSONP解决跨域 2、基本流程 第一步客户端创建一个script标签并将其src属性设置为包含跨域请求的URL同时准备一个回调函数这个回调函数用于处理返回的数据第二步服务端接收到请求后将数据封装在回调函数中并返回第三步客户端的回调函数被调用。数据以参数的形式传入回调函数。 3、图示 4、服务端核心代码 const express require(express) const app express()const data [{ id: 123, name: 张三 },{ id: 456, name: 李四 },{ id: 789, name: 赵云 }, ]app.get(/getData, (req, res) {res.send(fn(${JSON.stringify(data)})) })app.listen(1234, () {console.log(服务运行中...) })5、客户端核心代码 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /titleDocument/title/headbodybutton onclickgetData()获取数据/button/bodyscriptfunction fn(data) {console.log(data)}function getData() {const script document.createElement(script)script.onload () {script.remove()}script.src http://127.0.0.1:1234/getDatadocument.body.appendChild(script)}/script /html6、配置代理解决跨域 6.1 自己配置代理服务器 借助 http-proxy-middleware 配置代理 const { createProxyMiddleware } require(http-proxy-middleware)// 拦截所有带有/api的请求,转发给target app.use(/api,createProxyMiddleware({target: https://www.toutiao.com,changOrigin: true, // 允许跨域pathRewrite: {^/api: ,},}) )6.2 使用Nginx搭建代理服务器 1. 安装 Nginx 首先你需要在你的服务器上安装 Nginx。根据你的操作系统安装步骤可能有所不同。  在 Ubuntu/Debian 系统上 sudo apt update sudo apt install nginx 在 CentOS/RHEL 系统上 sudo yum install epel-release sudo yum install nginx在 Fedora 系统上 sudo dnf install nginx安装完成后启动 Nginx 并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx2、配置 Nginx 作为代理服务器 接下来配置 Nginx 作为代理服务器。你可以编辑 Nginx 配置文件通常在 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default具体路径根据操作系统和 Nginx 版本可能有所不同。 基本的代理配置示例如下 打开配置文件 sudo nano /etc/nginx/nginx.conf添加一个 server 块来配置代理设置。例如假设你想要将所有请求代理到 http://backend-server http {...server {listen 80;server_name your-domain.com;location / {proxy_pass http://backend-server; # 后端服务器的地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}... }这里的 proxy_pass 指令将请求转发到 http://backend-server。你可以根据需要更改为你实际的后端服务器地址。 proxy_set_header 指令用于设置转发请求时的 HTTP 头信息。 保存文件并退出编辑器。测试配置是否正确 sudo nginx -t重新加载 Nginx 配置 sudo systemctl reload nginx3、验证代理设置 现在你可以通过访问你的代理服务器地址来验证是否能够成功地将请求代理到后端服务器。例如访问 http://your-domain.com你应该能够看到来自 http://backend-server 的内容。 4、其他配置可选 根据需求你可能还需要进行其他配置例如 负载均衡 如果你有多个后端服务器可以使用 upstream 块来进行负载均衡。SSL/TLS 加密 如果你需要 HTTPS可以配置 SSL 证书来加密代理流量。缓存 配置 Nginx 缓存以提高性能。 6.3 借助脚手架搭建代理服务器 修改 vue.config.js 文件 // vue.config.js module.exports {devServer: {proxy: http://localhost:5000, // 代理到你的后端服务器// 或者使用对象形式配置多个代理/*proxy: {/api: {target: http://localhost:5000,changeOrigin: true,pathRewrite: { ^/api: },},},*/}, };
http://www.w-s-a.com/news/236906/

相关文章:

  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样
  • 网站怎么做的qq邮件订阅浙江省住房和城乡建设厅网站查询
  • 主机屋网站在线做图片
  • 河南省城乡住房建设厅网站wordpress登陆密码
  • 漳州做网站的公司搭建网站多少时间
  • 网站开发实习计划模板微营销手机
  • 网站设计与制作是做什么工作免费封面设计在线制作生成