zoukankan      html  css  js  c++  java
  • JavaScript跨域问题

    通过实现Ajax通信的主要限制,来源于跨域安全策略。默认情况下,XHR对象只能访问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求对于开发某些浏览器应用程序也是至关重要的。

    解决方案有:

    1、JSONP:json+padding(内填充)

      原理:动态插入script标签

    通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而解决跨域的数据请求。

    2、CORS(Cross-Origin Resource Sharing, 跨域资源共享)

      服务器端对CORS的支持,主要是通过设置Access-Control-Allow-Origin来进行的。就可以允许Ajax进行跨域的访问。

    3、document.domain + iframe

      通过修改document.domain来跨子域

    主域的document.domain设置为同一个主域,前提条件:这两个域名必须属于同一个基础域名,而且所使用的协议,端口号都要一致,否则无法利用document.domain实现跨域。

    4、window.name

    window对象有一个name属性,该属性有一个特征,即在一个窗口的生命周期内,窗口载入的所有页面都是共享一个window.name的,每个页面对window.name都有读写权限,window.name是持久存在一个窗口载入过的所有页面中

    5、window.postMesssage

      postMessage是HTML5新引进的特性

    6、服务器上设置代理页面

     window.name的方法不复杂,也能兼容几乎所有的浏览器,是一个很好得跨域请求方法。

  • 相关阅读:
    JavaScript——引用类型
    react+express+mongodb搭建个人博客
    JavaScript——变量及其作用域
    CSS——盒子模型
    CSS——浮动及清除浮动
    hexo博客分支教训
    使用Node.js+Express 简易开发服务端实例
    发布Nuget包命令
    当心引用类型的“坑”
    sqlcmd相关
  • 原文地址:https://www.cnblogs.com/WaTa/p/5536959.html
Copyright © 2011-2022 走看看