zoukankan      html  css  js  c++  java
  • AJAX跨越访问解决方案

    1、JSONP

      JSONP参考教材:http://kb.cnblogs.com/page/139725/

      JSONP是利用HTML的script标签一下特性:

        1)引用外部资源不受跨域问题影响

        2)script标签加载完js资源后立马自动执行加载的js

        3)新加载的js作用域为全局

      script标签的src属性指向服务端动态生成js文件,该js文件的基本格式如下:

    callback(jsonData);

      其中callback函数在客户端定义,名称不定,由script标签通过url传参传递到服务器,jsonData为目标数据。

      简单的说就是:在网页中定义一个全局函数,让后通过script标签访问服务器并带上这个全局函数名,服务器收到这个函数名动态生成上文提到的js文件,网页加载完后就会执行全局函数。

     优点:

      简单方便,通过封装能做到像写AJAX一样;

     缺点:

      1)服务器接口需要改变

      2)无法获获知接口调用失败

    2、Access-Control-Allow-Origin

      在返回的响应信息中,使用 Access-Control-Allow-Origin 头来控制哪些域名的脚本可以访问该资源。如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源。如果有多个,则只需要使用逗号分隔开即可。

      注意:在服务器端,Access-Control-Allow-Origin 响应头中的端口信息不能省略。

     优点:

      1)简单方便

      2)客户端不需要作任何改动

     缺点:

      1)服务端安全性降低

      2)需要服务端配合修改报文头

    3、利用iframe

      推荐教程:http://www.jb51.net/article/33711.htm

     优点:

     缺点:

      1)数据迂回传递

      2)需在服务端部署response.html

      3)回调函数必须为全局函数

  • 相关阅读:
    每日日报40
    每日日报39
    每日日报38
    vue 0点定时网络请求
    js reduce
    时间选择器 element
    CTF-WEB:PHP 变量
    CTF-WEB:PHP 反序列化
    Java 异常类与捕获异常
    Java 面向对象:内部类
  • 原文地址:https://www.cnblogs.com/dragon-aslan/p/5577101.html
Copyright © 2011-2022 走看看