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

网站建设是否属于技术合同微博营销软件

网站建设是否属于技术合同,微博营销软件,b站十大免费观看内容,湘潭商城网站建设定制前言 跨域相关 这是一个 经常会碰到的问题 然后 常见的解决方式 也大概就是几种, 各有各的问题 这里仅仅是 从理论上 来探讨这个问题 主流的解决方式 是通过代理, 将不同域 合并到同一个域 测试用例 测试用例如下, 这里仅仅是一个简单的数据展示 获取对方 “/config.jso…

前言

跨域相关

这是一个 经常会碰到的问题

然后 常见的解决方式 也大概就是几种, 各有各的问题

这里仅仅是 从理论上 来探讨这个问题

主流的解决方式 是通过代理, 将不同域 合并到同一个域

测试用例

测试用例如下, 这里仅仅是一个简单的数据展示

获取对方 “/config.json” 的接口的数据, 然后展示出来

无跨域的情况下直接请求 “/config.json”, 这种情况下 正常展示业务数据

跨域的情况 配置为 其他服务器的 “/config.json” 的请求[这里为 http://172.27.181.126:10080/config.json], 这时候会碰到 跨域的问题

<template><div id="text" ><button @click="handleClick" > click </button>{{text}}</div>
</template><script>
import $ from 'jquery'export default {name: "HelloWord",components: {},data() {return {text: "text"}},methods: {mounted() {},handleClick() {var _this = thisconsole.log("xx")$.get("/config.json", function(data) {console.log(data)_this.text = data})}}
}
</script><style>
</style>

在无跨域的问题下面, 初始化状态如下

点击按钮之后, 能够正常拿到数据, 并且 正常展示

构造跨域的情况, 更新 url 为 “http://172.27.181.126:10080/config.json” 

发送请求之后 报错如下, 这是一个 典型的跨域异常

访问的这两个不同服务, 不同之处在于 一个里面 from 的值是 node, 一个 from 的值是 nginx

本域的服务如下

第三方域的服务如下

浏览器默认的安全策略配置

Chrome 的启动命令增加如下参数 “--disable-web-security --user-data-dir=D:\ChromeDevData” 

关闭 浏览器的web安全策略

然后 实际运行, 效果如下

可以看到 跨域的异常被跳过了

对方服务器增加允许跨域的相关响应头配置

这个相当于是 客户端这边和对方服务器沟通之后, 对方服务器告诉客户端这边, 需要允许跨域, 客户端这边才能正常的访问对方服务器的服务

服务器这边增加 允许跨域 的相关配置, 配置信息如下

add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Methods "POST,GET,OPTIONS,DELETE";
add_header Access-Control-Allow-Credentials "true";

然后 服务器相应数据如下

然后 我们看一下 页面的情况, 可以看到 跨域问题 也没有了

基于 jsonp 来解决跨域问题

当然 这个同样需要服务器配合, 或者 增加代理服务器 专门转义这块的 wrap

客户端这边处理如下, 直接基于 jquery 中提供的 $.ajax 中相关配置来实现这个处理

主要是 封装 script 标签, 封装 jsoncallback 函数, script 标签主要是用于获取 对方服务器的信息, 拿到的是 jsoncallbck($response)

主要依据的是 script 标签, 没有 跨域策略的限制

然后 jsoncallback 是 jquery 这边自己根据 success 来进行封装的

需要调整服务器这边的处理, wrap 一下, 封装 jsonpcallback 的函数封装格式

使其满足 javascript 的语法格式, 然后 客户端拿到这段内容之后, 将其执行, 进而实现 业务处理

基于代理服务, 统一访问的域

比如我们这里有 node 服务作为本地服务, nginx 作为对方服务

从部署到生产环境的角度来看

那么 可以在 nginx 上面增加配置, 组合 node 服务 和 目标静态资源服务, 比如这里 “location /” 是对应于静态资源服务, ”location /HelloWorld” 对应于 node 服务

然后 这时候通过 nginx 来访问 node 的页面, 然后 页面 $ajax 这边访问的 url 更新为 “/config.json”, 这样就不会存在 跨域的问题了

从另一个角度, 从开发的角度来看, 在 vue 的开发服务器上面配置 相关代理

vue.config.js 中 devServer 的代理配置如下, “/config.json” 代理到 目标服务器上面去

业务测使用, 直接请求本域的数据服务 即可

最终页面效果如下, 从 from 可以判断出 获取的是 对方服务器的数据

这里存在的一个冲突是, 如果 node 上面本身也有 “/config.json” 的服务, 会优先选择 node 上面的 “/config.json” 

chrome 访问对方服务器的时候可能会出现 net::ERR_UNSAFE_PORT

这个是 chrome 这边的一些 安全策略的控制, 发现访问的端口是 某敏感端口, 直接 block 掉请求

浏览器 网络这边的情况如下

然后 console 这边报错如下, 错误信息为 ERR_UNSAFE_PORT

这种情况下, 在 chrome 的启动快捷方式中增加如下 参数即可 “ --explicitly-allowed-ports=10080” 

http://www.dtcms.com/wzjs/232561.html

相关文章:

  • 人与马做的网站新郑网络推广公司
  • 郑州网站建设华久阳东网站seo
  • 榆林公司网站建设爱站seo工具包
  • 推广网站文案网站优化网络推广seo
  • 网站代理如何做如何优化推广中的关键词
  • 做建网站百度网址大全免费下载
  • wordpress 改系统5年网站seo优化公司
  • 深圳做网站推广的公司又一病毒来了比新冠可怕
  • 网站建设公司如何盈利谷歌推广代理商
  • 资料网站怎么做的驾校推广网络营销方案
  • 做外贸需要做个英文网站吗谷歌排名优化
  • 佛山网站建设哪家效果好做推广怎么做
  • 丰台石家庄网站建设手游推广去哪里找客源
  • 品牌网站设计提案下载百度卫星导航
  • 承德在线怎么快速优化关键词排名
  • 网站建设公司 信科便宜百度收录批量提交入口
  • 长春做网站企业交换链接是什么
  • 单位做网站资料需要什么软件十大网络营销经典案例
  • 怎样做网站静态百度网站排名查询
  • 效果好的徐州网站建设广告营销的经典案例
  • 呼伦贝尔人才网官方网站入口郑州网站营销推广公司
  • 利为汇wordpress教程成都百度seo推广
  • 企业网站建设电话中国seo公司
  • 一级a做爰片就在线看网站简述seo的优化流程
  • 四川省建设厅注册管理中心网站首页bt蚂蚁
  • 外贸网站建设公司策划广告点击一次多少钱
  • 门户网站建设项目书谷歌浏览器中文手机版
  • 西安网站建设联系方式武汉seo和网络推广
  • 电子商务网站开发指南企业网络推广的方法
  • 个人网站可以做哪些内容河北百度seo