精华内容
下载资源
问答
  • 1、为什么会产生跨域 答:因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑,就会产生一个同源政策,...

    一、跨域

    1、为什么会产生跨域

    答:因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑,就会产生一个同源政策,不是同一个地方出来的是不允许进行交互的。

    2、怎么解决跨域

    解决跨域的方法:第一种jsonp的方法。第二种使用CORS解决跨域问题,即跨域资源共享,在后端设置响应头部,加一句代码:access-control-allow-origin:"*"或者允许交互的域名。第三种使用vue,找到config文件下->index.js文件,修改propyTable中的target的值,就可实现用前端解决跨域。第四种,使用代理;第五种,使用postmessage

    1、jsonp方法:

    jsonp是一种借助于 script 标签发送跨域请求的技巧方案。script的src属性可以访问网络上的资源,并script标签可以拿到响应体。

    <script>
        function test(json){
            console.log('我被调用了');
            console.log(json);
       }
    </srcipt>
    <script src="http://api.douban.com/v2/movie/top250?callback=test"></script>
    

    我们可以看到,我们预先定义了一个函数叫test,再然后在src里加了一个参数callback=test,可以发现,当请求完成,会自动调用test这个函数,并且把响应体(JSON数据)当做参数传递过来.实际上是浏览器用script的src去发起请求,并且传递一个参数叫callback=函数名,服务器接收到这个函数名,在返回的响应体里面调用这个函数,并且把json当做参数传递.
    注意:(1).Jsonp不是一套新技术,只是聪明的程序员想出的一套方案
    (2)能不能用这套方案,要看服务器端代码怎么写,服务器端如果写了调用函数的代码,那么就能支持JSONP方案.

    如果是在JQuery中使用Ajax,则只需要在dataType属性中把json改为jsonp即可;
    img

    2、后端处理跨域方法:使用cors解决跨域问题,即跨域资源共享,设置响应头。
    <?php 
        $json = array("name"=>"jack","age"=>16);
        //代表告诉浏览器,我允许任意域名访问我这个接口
        //如果写一个*,代表所有域名都可以来访问我
        // header('Access-Control-Allow-Origin: *');
        //如果写的是指定域名,代表只有这个域名可以访问
        header('Access-Control-Allow-Origin: *');
        echo json_encode($json);
    ?>
    
    3、前端跨域方法:使用vue

    找到config文件下->index.js文件,修改propyTable中的target的值。

    proxyTable: {/api”: {
    target: “http://localhost:8080,
    changeOrigin: true,
    pathRewrite: {^/api’: ‘’
    }
    }
    }
    
    4、iframe嵌套通讯,postmessage

    HTML5引入了一个全新的API:跨文档通信 API(Cross-document messaging)。这个API为window对象新增了一个window.postMessage方法,允许跨窗口通信,不论这两个窗口是否同源。

    本文部分参考:https://blog.csdn.net/sinat_28296757/article/details/80771082

    展开全文
  • 什么会造成跨域

    2020-06-13 14:45:41
    什么会造成跨域,如下图:

    什么会造成跨域,如下图:

     

    展开全文
  • 为什么会产生跨域问题?

    千次阅读 2019-10-19 19:17:45
    2、跨域(协议,域名,端口不一样都是跨域) 3、XHR(XMLHttpRequest请求) 同时满足三个条件才有可能产生跨域问题。 解决跨域问题方案。 1,从浏览器出发,允许浏览器跨域。 2,从XHR(XMLHttpRequest)出发  ...

    1、浏览器限制

    2、跨域(协议,域名,端口不一样都是跨域)

    3、XHR(XMLHttpRequest请求)

    同时满足三个条件才有可能产生跨域问题。

    解决跨域问题方案。

    1,从浏览器出发,允许浏览器跨域。

    2,从XHR(XMLHttpRequest)出发

        (1)避免发生跨域。使用jsonp,由于jsonp请求是通过script的方式发送的(只有xhr的请求方式才有可能产生跨域问题),所以不会产生跨域问题。Spring MVC实现过程:前台使用ajax的get请求,将dataType设为“jsonp”;服务器创建一个类并继承抽象类AbstractJsonReponseBodyAdvice,最后注解@ControllerAdivece。使用jsonp的弊端,只能使用get方式请求,服务器需要改动代码,发送的不是xhr请求。

        (2)产生跨域后解决。

                从被调用方考虑,有三种情况,分别是服务器实现,nginx配置和apache配置。

                服务器实现需要注意两种情况,简单请求和非简单请求。简单请求是先执行请求再验证,非简单请求是先验证再请求。

              简单请求(比较常见):方法为get,head,post,请求header里面没有自定义头,Content-Type的值为以下几种 text/plain,multipart/form-data,application/x-www-form-urlencoded。

                非简单请求(比较常见):put,delect方法的ajax请求,发送json格式的ajax请求,带自定义头的ajax请求。

                简单请求处理方案:在响应头中添加

                    Access-Control-Allow-Origin=“允许跨域的url”,即跨省域时,请求头Origin的值,所以一般是获取Origin的值。

                    Access-Control-Allow-Method=“*”,允许的方法。

                非简单请求处理方案:在相应头中添加

                    Access-Control-Allow-Origin=“允许跨域的url”,即跨域时,可以获取请求头Origin的值。

                    Access-Control-Allow-Method=“*”,允许的方法

                    Access-Control-Request-Headers=“Content-Type,自定义的header的key”。

                 带cookies的跨域解决:在响应头添加

                    Access-Control-Allow-Credentials,="true",允许使用cookies

                   ngnix配置:


    apache配置:没搞过

    若是使用spring框架:使用@CrossOrigin注解既可以实现服务端跨域

                        

        

    展开全文
  • 什么跨域 指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制,防止他人恶意攻击网站 比如一个黑客,他利用 iframe 把真正的银行登录页面嵌到他的页面...

    什么是跨域

            指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对
    javascript 施加的安全限制,防止他人恶意攻击网站
            比如一个黑客,他利用 iframe 把真正的银行登录页面嵌到他的页面上,当你使用真实的用户
    名和密码登录时,如果没有同源限制,他的页面就可以通过 JavaScript 读取到你的表单中输
    入的内容,这样用户名和密码就轻松到手了。

    解决方式

    1、jsonp

    原理:动态创建一个 script 标签。利用 script 标签的 src 属性不受同源策略限制。因为所有
    的 src 属性和 href 属性都不受同源策略限制。可以请求第三方服务器数据内容。
    步骤
    1.1)去创建一个 script 标签
    1.2)script 的 src 属性设置接口地址
    1.3)接口参数,必须要带一个自定义函数名 要不然后台无法返回数据。
    1.4)通过定义函数名去接收后台返回数据
    //去创建一个 script 标签 
    var script = document.createElement("script");
     //script 的 src 属性设置接口地址 并带一个 callback 回调函数名称 
    script.src = "HTTP://127.0.0.1:8888/index.php?callback=jsonpCallback"; 
    //插入到页面 
    document.head.appendChild(script); 
    //通过定义函数名去接收后台返回数据 function jsonpCallback(data){
         //注意 jsonp 返回的数据是 json 对象可以直接使用 
         //Ajax 取得数据是 json 字符串需要转换成 json 对象才可以使用。 
    }

    2、 CORS:跨域资源共享

            原理:服务器设置 Access-Control-Allow-OriginHTTP 响应头之后,浏览器将会允许跨域请

    限制:浏览器需要支持 HTML5,可以支持 POST,PUT 等方法兼容 ie9 以上需要后台设置
    Access-Control-Allow-Origin: *          //允许所有域名访问,或者
    Access-Control-Allow-Origin:   HTTP://a.com       //只允许所有域名访问

    3、反向代理

    4、window+iframe

    展开全文
  • 为什么会跨域的问题出现,如何解决跨域问题 什么是跨域 ​ 定义: 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了...
  • 一、什么跨域? &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作&amp;amp;quot;跨域...
  • 造成跨域的原因就是浏览器的同源策略:只要满足协议、主机、端口一致,则两个页面具有相同的源。同源策略限制了从同一个源加载的文档或脚本如何来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全...
  • 什么跨域 什么是同源策略 解决方式 1、jsonp 1.1)去创建一个 script 标签 1.2)script 的 src 属性设置接口地址 1.3)接口参数,必须要带一个自定义函数名 要不然后台无法返回数据。 1.4)通过定义函数名去...
  • 声明一个回调函数,其函数名(如fn)当做参数值,要传递给跨域请求数据的服务器,函数形参要获取目标数据(服务器返回的data)。 创建一个<script>标签,把那个跨域的API数据接口地址,赋值给script的src,还要在...
  • 1⃣️: 因为同源策略限制,不同源会造成跨域; 2⃣️: 以下任意一种情况不同都是不同源: 协议不同: http:// 子域名不同:www 主域名不同:baidu.com 端口号不同:8080 ip地址和网址不同:...
  • 什么是跨域 现代浏览器处于安全考虑,都会去遵守一个叫做“同源策略”的约定,同源的意思是两个地址的协议、域名、端口号都相同的情况下,才叫同源...为什么禁止跨域 跨域访问会造成很多安全问题,下面我们来看一...
  • 如何解决跨域以及为什么会产生跨域

    千次阅读 多人点赞 2021-04-08 11:26:50
    跨域可能造成的报错 ajax在不同域名下的请求无法实现 常用的解决跨域的方法 1. JSONP跨域 JSONP(JSON with Padding: 填充式JSON) JSONP应用的技巧: 在HTML标签里,一些标签比如link、href、img这样的标签是没有...
  • 浏览器的跨域问题以及解决方案 浅谈CSRF攻击方式 参考了上面的大神们的文章,以下是自己的总结。 1、什么是跨域 跨域的产生来源于现代浏览器所通用的‘同源策略’,所谓同源策略,是指只有在地址...2、为什么浏...
  • 希望能帮助你!! 前端的很多工作都是在请求数据,将数据渲染到页面中。所以面试官问这个问题,主要是想了解你是否请求数据,请求自己的数据,比较简单,请求别人的数据,就会造成跨域。 跨域的解决方案有很多
  • 什么情况下会导致跨域 如果协议 端口号 域名不相同就发生跨域
  • //解决跨域的问题 response.setHeader("Access-Control-Allow-Origin",request.getHeader("Origin")); response.setHeader("Access-Control-Allow-Credentials","true"); response.setHeader("Access-Control-Allow...
  • 它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 同源策略:所谓同源是指:协议,域名,端口均相同。即便两个不同的域名指向同一个ip地址,也非同源。 http://www.123.com/index.html 调用 ...
  • 浏览器的同源策略,从一个域上加载的脚本不允许访问另外一个域的文档属性,是浏览器上安全性考虑实施的非常重要的安全策略。举个例子:比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),如果...
  • 什么跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指:域名,协议,端口均相同,不明白没关系,举个栗子: ...
  • 它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域; 下面我用express框架来进行演示: server.js: const express = ...
  • 跨域问题的由来 相信很多人都或多或少了解过跨域问题,尤其在现如今前后端分离大行其道的时候。 你在本地开发一个前端项目,这个项目是通过 node 运行的,端口是9528,而服务端是通过 spring boot 提供的,端口号是...
  • vue的路由与跨域请求

    2019-02-24 09:45:15
    这里记录了vue的组件跳转与axios的跨域请求,这里就是一些简单的代码,附带Element的样式运用
  • 更详细的说明可以看下表:特别注意两点:第一,如果是协议和端口造成跨域问题“前台”是无能为力的,第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否...
  • 那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。 刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。...
  • Nginx 反向代理 什么跨域 跨域指的是浏览器不能执行其他网站的脚本它是由浏览器的同源策略造成的是浏览器对javascript施加的安全限制 所谓同源是指域名协议端口相同浏览器执行javascript脚本时检查这个脚本属于...
  • 什么跨域?怎么解决跨域问题?

    万次阅读 多人点赞 2016-06-15 17:32:16
    什么跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: ...
  • 总结,默认跨域允许方法:GET,HEAD,POST 默认允许Content-Type:text/plain multipart/form-data application/x-www-form-urlencoded (form表单的3种数据类型) XMLHttpRequestUpload对象均没有注册任何事件监听器...
  • ajax--跨域产生的原因

    2018-04-23 22:34:24
    1. 浏览器限制 很多情况下,有的人认为跨域是服务器端造成的,实际上不是。 如图:发送get1()请求,控制台打印出了跨域报错,但是实际上这个请求状态码200,请求是成功到达服务器并且返回数据。所以可以判断...
  • 为什么浏览器不许跨域

    千次阅读 2013-09-05 18:04:44
    http://www.2cto.com/Article/201106/93852.html浅谈跨域WEB攻击 ...一直想说说跨域web攻击这一概念,先前积累了一些案例和经验,所以想写这么一篇文档让大家了解一下跨域web攻击,跨域web攻击指的是利用网站跨
  • 何为跨域跨域session/cookie? 也就是第三方session/cookie。第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 被存储在访客的计算机上。第三方session/cookie指的是当前访问的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,344
精华内容 9,337
关键字:

为什么会造成跨域