场景 码农小明要做一个展示业务数据的大屏给老板看,里面包含了来自自己网站的数据和来自隔壁老王的数据.那么自己网站的数据提供了 http://xiaoming.com/whoami 这样的数据接口隔壁老王提供了 http://oldwang.com/isdad 这样的数据接口单独点开都是没有问题的.但是一使用 js 的 ajax 请求就无法收到来自 oldwang.com 的数据了.点开浏览器控制台一看,红字标出(Chrome): XMLHttpRequest cannot load http:/…
一.Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载.   Ajax 的最大的特点: 1. Ajax可以实现动态不刷新(局部刷新) 2. readyState 属性 状态 有5个可取值: 0 = 未初始化,1 = 启动, 2 = 发送,3 = 接收,4 = 完成   Ajax 同步和异步的区别: 1. 同步:提交请求 -…
Ajax 是什么: 1)  通过异步模式,提升了用户体验 2)  优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3)  Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载. Ajax 的过程: 1)  创建XMLHttpRequest对象,也就是创建一个异步调用对象 2)  创建一个新的HTTP请求,并指定该HTTP请求的方法.URL及验证信息 3)  设置响应HTTP请求状态变化的函数 4)  发送HTTP请求 5)  获取异步调用…
因项目的需要,PHP调用第三方 Java/.Net 写好的 Restful Api,其中有些接口,需要 在发送 POST 请求时,传入对象. Http中传输对象,最好的表现形式莫过于JSON字符串了,但是作为参数的接收方,又是需要被告知传过来的是JSON! 其实这不难,只需要发送一个 http Content-Type头信息即可,即 “Content-Type: application/json; charset=utf-8”,参考代码如下: <?php /** * PHP发送Json对象数据…
Fiddler工具是一个http协议调试代理工具,它可以帮助程序员测试或调试程序,辅助web开发. Fiddler工具可以发送向服务端发送特定的HTTP请求以及接受服务器回应的请求和数据,是web调试的利器. 使用Fiddler也可以像Firefox浏览器中的RestClient工具一样,去调试post请求(带有json格式的数据)以及get请求(Header方式传参),方法如下: 一.使用Fiddler调试post请求(带有json格式的数据) 1.打开Fiddler(可以去官网下载http:…
代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和保存数据形式保存到数据库中. 代码如下: import serial,pymysql,threading,time x=serial.Serial('com1',9600,timeout=1) def faSong(): # 发送函数 while True: # 循环发送数据 time.sleep(…
一.同源策略(Same-Origin Policy),是浏览器的一种安全策略. 1.同源(即url相同):协议.域名.端口号 必须完全相同.(请求是来自同一个服务) 2.跨域:违背了同源策略,即跨域. 3.ajax请求是遵循同源策略的. ■ 同源请求例子(在浏览器访问127.0.0.1:9000/server-orign,然后点击按钮发送同源请求): 服务端对同源请求处理: //3.创建路由规则(request 是请求的报文,response是响应的报文) app.get('/server-or…
前端post请求发送formData的类型数据时,需要服务端引入中间件body-parser,主要原因是post请求发送的数据,是在http的body里面,所以需要进行解析,否则获取不到数据(数据为空) 注意:对于使用Requst Payload(以“流“的方式传递数据时,不要要这个中间件) 即便是前端浏览器能够看到数据(如下图所示)已发送并且请求成功,status==200: 前端代码: let forms= new FormData(); forms.append('uname','test…
前端post请求发送formData的类型数据时,需要服务端引入中间件body-parser,主要原因是post请求发送的数据,是在http的body里面,所以需要进行解析,否则获取不到数据(数据为空) 注意:对于使用Requst Payload(以“流“的方式传递数据时,不要要这个中间件) 即便是前端浏览器能够看到数据(如下图所示)已发送并且请求成功,status==200: 前端代码: let forms= new FormData(); forms.append('uname','test…
let param = new FormData(); param.append("paths", this.ruleForm.uploadPath); param.append("pkg", this.ruleForm.packageName); //      param.append("file", $('#file')[0].files[0]); this.$http({ method: 'post', url: 'http://uplo…
这虽然不是前端的问题吧,但如果遇到那种不靠谱的后台 还是可以拿来打脸的 转:https://segmentfault.com/a/1190000012469713…
本人前端使用多个框架时,jq  ajax传参出现如下报错: 最后发现,可能是xhr的相关默认参数被修改了.顾使用jq 传参时,一直报错,jq  ajax额外添加的关键参数: crossDomain: true ajax post传参完整如下: $.ajax({ url: IPName + '/api/index/appointment', type: 'post', dataType: "json", data: { mobile: psi_mobile }, crossDomain:…
发送一个ip数据报到接受这个ip数据报经历的过程 好比寄一个快递的过程 这个包裹一共有三层, 这个包裹的最里面是数据,数据 第二层写着目的ip地址和源ip地址,即收件人和发件人的姓名 第三层也就是最外面那层写的是源MAC和目的MAC地址,即本快递服务站的后门门牌号,和下一个快递服务站的前门门牌号(这里假设快递服务站接收快递只在前门接收,发送快递只在后门,且前门和后门的门牌号不一样) 所以本服务站从前门接收到上一个站传来的包裹后,我必须把包裹的最外层拆掉,查看第二层的内容,即查看收件人和发件人分别…
vue-cli3.0搭建的项目,平时访问内部接口配置了拦截器,今天需要调用天气预报的外部接口,发现跨域问题,通过配置代理解决. 1.在vue.config.js中配置代理 module.exports = { devServer: { proxy: { // 为天气接口配置代理,解决跨域 '/proxy/': { 'target': 'https://www.tianqiapi.com', //天气接口地址 'secure': false, // false为http访问,true为https访…
今天碰到一个Ajax跨域请求的问题,我把源码down下来,然后在服务器端写了一个http请求的代理(因为服务器端是不存在跨域问题的),说白了就是用BufferedReader写了个IO流,然后读取到目标地址的数据,测试发现OK,但是问题出现在,asp的项目存在IIS里面,而我们的java代码是放在其他服务器的容器中,asp的请求无论如何都是跨域的,我们是无法在IIS里面部署jsp的,所以这个办法行不通. 于是上网查了下,发现可以使用jsonp的方式实现跨域.其实原理也很简单,就是利用<scrip…
JSONP原理:利用<script>标签的src属性实现跨域的请求.可在URL中提供回调函数的名字.后台进过处理后将数据以回调函数参数的形式返回. demo:JSONP请求不同端口的数据 <!DOCTYPE html> <html> <head> <title>跨域小demo</title> <meta http-equiv="Conent-Type" content="text/html"…
vue 解决axios请求出现前端跨域问题 最近在写纯前端的vue项目的时候,碰到了axios请求本机的资源的时候,出现了访问报404的问题.这就让我很难受.查询了资料原来是跨域的问题. 在正常开发中跨域问题有很多的解决方案.最常见的就是后端修改响应头.但是前端也可以解决,通过反向代理.为了防止下一次这样的错误出现,记录一下,总结一下. 所以现在我们来复盘一下,然后解决掉. 一.为什么会出现跨域的问题? 跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域.…
当拿到一个网址如:https://music.163.com/store/api/categorypage/list  获取数据是出现如下: 证明该网址不能非常直观的拿到数据.接下来我们试试跨域拿这个网址的数据: 1.首先在 src 文件里我们需要配置(创建)一个 vue.config.js 文件 2.在自己的 request 文件夹 (专门用来请求数据的文件) 里: - 通过如下可跨域提示定义方法 - 然后 export 导出 3.main.js里引入 request 文件:import aj…
1.在config文件中修改index.js proxyTable: { "/api":{ target: 'https://www.baidu.com/muc/',//你需要跨域的url changeOrigin: true, pathRewrite: { '^/api': '/' } } }, 2.在config文件中修改dev.env.js module.exports = merge(prodEnv, {NODE_ENV: '"development"',A…
Vue用axios跨域访问数据axios是vue-resource的替代品,vue-resource不再维护.安装axios:npm install axios使用vue-cli开发时,由于项目本身启动本地服务是需要占用一个端口的,所以会产生跨域的问题.在使用webpack做构建工具的项目中,使用proxyTable代理实现跨域是一种比较方便的选择. 通过this.$http去调用axios,如果之前你的vue-resourse也是这么写的话,可以无缝切换.换成this.axios也是没有问题的…
前言 最近做的一个项目中使用了vue+springboot的前后端分离模式 在前端开发的的时候,使用vue cli3的devServer来解决跨域问题 上线部署则是用的nginx反向代理至后台服务所开的端口 正文 开发环境中的跨域 首先,要确定后台服务的ip与端口 这里我的后台开的是 localhost:8081 npm run serve在8080端口 一般我们使用ajax请求的时候,会可以把url ip:port/api 写在ajax请求的url参数中 this.axios.get("loc…
一.前言 由于项目是前后端分离,API接口与Web前端 部署在不同站点当中,因此在前文当中WebApi Ajax 跨域请求解决方法(CORS实现)使用跨域处理方式处理而不用Jsonp的方式. 但是在一段时间后,发现一个很奇怪的问题,每次前端发起请求的时候,通过浏览器的开发者工具都能看到在Network下同一个url有两条请求,第一条请求的Method为OPTIONS,第二条请求的Method才是真正的Get或者Post,并且,第一条请求无数据返回,第二条请求才返回正常的数据. 二.原因 第一个O…
16319 1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点建议方式 在main.js中如下声明使用 import axios from 'axios'; Vue.prototype.$axios=axios; 那么在其他vue组件中就可以this.$axios调用使用 1 2 3 4 2.小小的提一下vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:…
1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点 建议方式 在main.js中如下声明使用 import axios from 'axios'; Vue.prototype.$axios=axios; 那么在其他vue组件中就可以this.$axios调用使用 2.小小的提一下vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:3002/是要跨域的,相当…
1.小小的提一下vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:3002/是要跨域的,相当于浏览器设置了一道门槛,会报错XMLHTTPRequest can not load http://40.00.100.100:3002/. Response to preflight request doesn’t pass access control…. 为什么跨域同源非同源自己去查吧,在webpack配置一下…
项目基于Vue前端+Node后台,启动两个服务,请求数据时,端口不一致造成跨域报错: (No 'Access-Control-Allow-Origin' header is present on the requested resource) 经过查官方API得到以下两种思路: 1.在Node后台中设置,允许访问 1.1.用代码控制 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin&qu…
原因出于安全考虑,浏览器有一个同源策略.浏览器中,异步请求的地址与目标地址的协议.域名和端口号三者与当前有不同,就属于跨域请求. 限制跨域访问是浏览器的一个安全策略,因为如果没有这个策略,那么就有被跨站攻击的危险.比如,攻击者在自己的网站A放置一个表单,这个表单发起DELETE请求,删除某个用户在B网站上的个人资料.如果没有同源策略保护,那么在同一个浏览器内,如果用户已经登录了B网站,这个删除的请求就会被接受,导致在用户不知情的情况下自己在B网站中的资料被删除. 解决方式浏览器的同源策略提升了安…
这个问题是因为,后台无法确认你是同一个“人”访问服务器,两次访问都给了你一个全新的Session,所以第一次保存的信息第二次请求无法得到,我的理解是,在跨域中,携带Cookie信息访问,即可让服务器确认是同一个“人”访问的后台. 一.在Vue项目的 main.js 中,设置允许携带Cookie信息.代码如下 后台同样也要允许携带Cookie信息:…
问题一: 使用ajax/axios跨域请求接口,后端放行了,能够正常获取数据,但是cookie设置不进去,后端登录session判断失效 ajax解决办法: //设置ajax属性 crossDomain:true 跨域代理 xhrFields:{ withCredentials : true }, 用于对本地XHR对象进行设置.一对「文件名-文件值」在本机设置XHR对象.例如,如果需要,你可以用它来为跨域请求设置XHR对象的withCredentials属性为true. dataType: 'j…
在Vue的webpack中结合runder函数 1.引入: <h1>下面是vue的内容:</h1> <div id="app"> <login></login> </div> 2.main.js //默认无法打包vue文件 需安装vue-loader import Vue from 'vue' import login from './login.vue' var vm = new Vue({ el:"#…