zoukankan      html  css  js  c++  java
  • javascript 同源策略和 JSONP 的工作原理

    同源策略

      同源策略是一个约定,该约定阻止当前脚本获取或操作另一域的内容。同源是指:域名、协议、端口号都相同。

      简单地说,A 服务器下的 a 端口执行 ajax 程序,不能获取 B 服务器或者 A 服务器的其他端口,是一种隔离策略。但是这个策略对标签的 src 属性无效,这个属性就是请求其他服务器的,所以可以用<script>标签的 src 属性请域外服务器。

    JSONP

      JSONP 的原理是通过 script 标签的 src 属性可以跨域的特点,发送请求到外域服务器,外域服务器返回 js 代码,客户端接受响应,然后就执行了这段 js 代码。

      具体过程是:

    1. 动态创建 script 标签,并添加到 html 中。
    2. 定义回调函数。
    3. 客户端传递一个 callback 参数(值为回调函数的函数名)给服务器,然后服务器端返回数据时,会将这个 callback 参数作为函数名将 json 数据包裹住,一起发给客户端。
    4. 然后客户端就执行了这段 js 代码。

    JSONP 和 AJAX 的区别

    1. ajax 的核心是通过 xmlHttpRequest 对象获取服务器数据
    2. jsonp 是动态创建 script 标签,利用它的 src 属性调用外域服务器的 js 脚本
    3. jsonp 只能用 get 请求,ajax 可以用 get 和 post
  • 相关阅读:
    转:Image与byte之间互转
    转:C#清除回收站
    设计模式:装饰模式
    设计模式:策略模式
    设计模式:简单工厂
    分享一套简单的CodeSmith三层模板
    CodeSmith读取数据库
    从学CodeSmith谈程序员学习方法
    Elasticsearch常用基础操作
    idea java 1.5 过时
  • 原文地址:https://www.cnblogs.com/sspeng/p/9754632.html
Copyright © 2011-2022 走看看