美文网首页前端
处理跨域的三种方式

处理跨域的三种方式

作者: 微笑是我_f8bb | 来源:发表于2018-12-27 19:57 被阅读0次

因为浏览器采用了同源策略,即协议、域名地址、端口号必须全部相同所以浏览器不能执行其他网站的脚本。但是有时候又必须要使用来自另一网站的数据,所以出现了跨域请求。那么怎样解决呢?

一、使用jsonp  

jsonp的原理实际上是利用了script标签的src属性能跨域引入(访问)js的特性,动态创建script标签(script标签只会加载一次,所以需要动态创建),并且在本地全局声明一个函数,用来接收文件里面函数调用时传递的数据数据。

值得注意的是jsonp只能使用get请求,不能使用post请求。

以jquery的jsonp为例 请求百度搜索的开放接口

二、代理 

例如www.123.com/index.html需要调用www.456.com/server.php,可以写一个接口www.123.com/server.php,由这个接口在后端去调用www.456.com/server.php并拿到返回值,然后再返回给index.html,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。

虽然通过服务器转发请求可以达到跨域请求的目的,但是增加服务器的负担,且访问速度慢。

以在vue-cli项目中使用为例

在config目录下的index.js文件中找到proxyTable

这里是以‘/api’代替目标路径http://localhost

使用时/api/+接口

三、CORS 

在访问的路径的后台设置响应头,让前端可以访问。

header('Access-Control-Allow-Origin:*');//允许所有来源访问

header('Access-Control-Allow-Method:POST,GET');//允许访问的方式

相关文章

  • springboot 三种跨域处理方式

    springboot 三种跨域处理方式:1.通过Filter方式实现全局跨域2.通过Interceptor方式实现...

  • 关于设置env等环境变量的思考

    1、如何处理跨域后台处理跨域前端处理跨域浏览器处理跨域 前端本地处理跨域:代理线上跨域的处理方式:Nginx反向代...

  • Vue实现跨域请求

    一般解决跨域问题可以通过CORS跨域、JSONP和反向代理跨域。下面分别介绍这三种跨域方式: 1、CORS 以ne...

  • 处理跨域的三种方式

    因为浏览器采用了同源策略,即协议、域名地址、端口号必须全部相同所以浏览器不能执行其他网站的脚本。但是有时候又必须要...

  • Ajax全接触(五) 处理跨域方式

    那么什么是跨域呢? 处理跨域方式-代理 我们在前端代码中将ajax访问后台url改成http://127.0.0....

  • 实现跨域请求的八种方式

    前端开发中我们经常会遇到跨域请求的情况,处理跨域请求方式很多,特整理如下: 浏览器的同源策略 提到跨域不能不先说一...

  • 全局异常处理(跨域)

    全局异常处理 注意: 全局异常处理可能会出现跨域 解决跨域

  • ajax1

    作为一个前端工作者,跨域问题应该是很常见的,处理方式有很多,下边来说一说我用到过的处理方式。1.什么是跨域只要协议...

  • #hello,JS:15 同源策略 & 跨域(JSONP)

    跨域有几种常见的方式?你有没有跨域使用的经验? 方式: 使用jsonp实现跨域?使用cors实现跨域?浏览器另类的...

  • web跨域解决方案

    围绕以下几点介绍: 什么是跨域? 常用的几种跨域处理方法? crossdomain.xml解决跨域问题 什么是跨域...

网友评论

    本文标题:处理跨域的三种方式

    本文链接:https://www.haomeiwen.com/subject/dicdlqtx.html