zoukankan      html  css  js  c++  java
  • 【ajax跨域】原因原理解决

    1.安全,跨域cookie iframe

    2.很简单,就是利用<script>标签没有跨域限制的“漏洞”(历史遗迹啊)来达到与第三方通讯的目的。当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,形如: 
    <script src="http://www.example.net/api?param1=1&param2=2"></script> 
    并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。 
    第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如: 
    callback({"name":"hax","gender":"Male"}) 
    这样浏览器会调用callback函数,并传递解析后json对象作为参数。本站脚本可在callback函数里处理所传入的数据。 
    补充:“历史遗迹”的意思就是,如果在今天重新设计的话,也许就不会允许这样简单的跨域了嘿,比如可能像XHR一样按照CORS规范要求服务器发送特定的http头。

    3.JSONP是一种非正式传输协议,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。这里有篇文章简单描述JSON跟JSONP的区别以及实战,自己去看吧

    CORS跨域:暂时没有用过,需要再学习

  • 相关阅读:
    vuejs学习小结(数据处理)
    vuejs的遇到的问题小结
    ES6 对象扩展
    webpack的两个难点
    Sass入门:第二章
    Sass入门:第一章
    Effective JavaScript :第六章
    Effective JavaScript :第五章
    Effective JavaScript :第四章
    Effective JavaScript :第三章
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4828380.html
Copyright © 2011-2022 走看看