美文网首页
web跨域 之 jsonp, cors, proxy理解

web跨域 之 jsonp, cors, proxy理解

作者: 豆腐先生就是我 | 来源:发表于2019-06-10 23:53 被阅读0次

web跨域

  1. 跨域产生原因:
    a. 协议名不一样
    b. 主机不一样
    c. 端口不一样

  2. 跨域有无问题:
    a. ajax请求会产生问题, 这是浏览器处理的结果
    b. 通过url(统一资源定位)获取的图片(资源)也是一种跨域,但是不会产生问题

  3. 处理跨域的方法
    jsonp 只支持get
    cors 返回响应头,允许跨域
    prory 开发中使用服务器代理(例如: webpack-dev-server)

一、cors

服务器端:
  1. response.setHeader("Acoss-Control-Allow-Origin", "*") // 设置响应头,允许接收地址设置
    + 不要设置为* ===> 允许所有请求地址通过
优缺点:
  1. 不需要前端设置, 后台设置
  2. 不安全, 没有http服务的服务器不支持

二、jsonp (用的不多)

  1. 根据后台的函数名, 设置全局的脚本函数, 设置接收数据的回调函数
  2. 发送标签src的http请求, 不是异步ajax(http)请求a
jsonp配置
  1. 配置全局js
 // jsonp.js
function fn (data){
    console.log(data)
}

  1. 页面发送请求
<script src='jsonp.js'><script>   //需要在jsonp请求之前
<script src="http://127.0,0,1:8000/fn"><script>  // 通过src属性请求进行跨域,浏览器不拦截
  1. 后台返回的对应函数和数据
res.setHeader("Content-type", "application/javascript")  //设置响应的类型
res.end("fn(123)")
优缺点
  1. 需要前端和后台配合, 前端要根据后台返回函数名设置全局接收数据的回调

三、proxy 代理服务器 (开发中用)

  1. 发送请求到代理服务器, 由代理服务器发送请求目标的服务器
  2. 目标服务器, 响应数据给代理服务器, 代理服务再返回数据给浏览器
  3. 脚手架已经配置了node代理服务器, 只需要配置需要代理的目标服务器就行了
脚手架配置需要代理的主机
  1. vue在config/index.js 中的proxytable 中进行配置
优缺点
  1. 需要前端自己搭这个proxy, 不过一般脚架已经配置好了

扩展:

Request Header 请求头

Accept: 设置接收的那些类型的数据, 浏览器根据顺序解析

Response Header 响应头

Content-type: 设置返回的类型, 浏览器根据这个类型进行解析, 例如: javascript

res.setHeader("Content-type", "application/javascript")

相关文章

  • web跨域 之 jsonp, cors, proxy理解

    web跨域 跨域产生原因:a. 协议名不一样b. 主机不一样c. 端口不一样 跨域有无问题:a. ajax请求会产...

  • 跨域的解决方案

    JSONP CORS跨域资源共享 基于http proxy实现跨域 基于post message iframe:w...

  • Spring Boot使用CORS解决跨域问题

    一、跨域问题描述 Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等。CORS 与 ...

  • spring boot CORS 支持

    一、Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 CORS 与 JSONP...

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • 跨域【详解】

    本篇有四种方法跨域:CORS、JSONP、降域、window.postMessage() 1. CORS CORS...

  • JavaScript - GET/POST及跨域方法

    xhr 原生方法请求 window fetch 方法 关于跨域 利用JSONP实现跨域调用 使用 CORS(跨域资...

  • Vue实现跨域请求

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

  • 前端跨域

    CORS跨域 1.CORS跨域-服务端设置,前端直接调用说明:后台允许前端某个站点进行访问 2.JSONP跨域-前...

  • 跨域处理

    跨域 1、什么是跨域 2、跨域方法2.1 JSONP2.2 CORS2.3 window.postMessage2...

网友评论

      本文标题:web跨域 之 jsonp, cors, proxy理解

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