什么是前端跨域,怎么解决跨域问题

什么是前端跨域,怎么解决跨域问题什么是跨域?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。所谓同源是指:域名,协议,端口均相同,不明白没关系,举个栗子:http://www.123.com/index.html调用http://www.123.com/server.php(非跨域)http://www.123.com/index.html调用http://www.456.com/server.php(主域名不同:123/456,跨域)http://abc.1

大家好,又见面了,我是你们的朋友全栈君。

什么是跨域?

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

所谓同源是指:域名,协议,端口均相同,不明白没关系,举个栗子:

http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。

解决办法:

1、JSONP:

使用方式就不赘述了,但是要注意JSONP只支持GET请求,不支持POST请求。

2、代理:

例如www.123.com/index.html需要调用www.456.com/server.php,可以写一个接口www.123.com/server.php,由这个接口在后端去调用www.456.com/server.php并拿到返回值,然后再返回给index.html,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。【如java爬取网络数据用的httpClient请求】

3、PHP端修改header(XHR2方式)

在php接口脚本中加入以下两句即可:

header(‘Access-Control-Allow-Origin:*’);//允许所有来源访问

header(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式

跨域会阻止什么操作?

浏览器是从两个方面去做这个同源策略的,一是针对接口的请求,二是针对Dom的查询

1.阻止接口请求比较好理解,比如用ajax从http://192.168.100.150:8020/实验/jsonp.html页面向http://192.168.100.150:8081/zhxZone/webmana/dict/jsonp发起请求,由于两个url端口不同,所以属于跨域,在console打印台会报No ‘Access-Control-Allow-Origin’ header is present on the requested resource

什么是前端跨域,怎么解决跨域问题

值得说的是虽然浏览器禁止用户对请求返回数据的显示和操作,但浏览器确实是去请求了,如果服务器没有做限制的话会返回数据的,在调试模式的network中可以看到返回状态为200,且可看到返回数据

https://blog.csdn.net/lianzhang861/article/details/84871369这篇博客有详细介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136327.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • menuconfig 配置选项详解

    menuconfig 配置选项详解转自:http://www.blog.chinaunix.net/uid-15887868-id-2758315.html在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Codematurityleveloptions—>代码成熟等级选项[]Promptfordevelopmentand/orincompletecode/drivers…

  • python-对大量文件夹名中含特定字符的批量修改

    python-对大量文件夹名中含特定字符的批量修改

  • 如果编程语言是一门武功绝学「建议收藏」

    学习编程与武功绝学武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。如果编程语言是一门武功绝学,各语言分别是哪门武功绝学呢?汇编语言汇编语言-易筋经汇编语言是计算机提供给用户的最快最有效的语言,也是能够..

  • 51Nod 1593 公园晨跑(RMQ,ST表)

    51Nod 1593 公园晨跑(RMQ,ST表)

  • 企业 keepalived 高可用项目实战

    企业 keepalived 高可用项目实战Listitem企业keepalived高可用项目实战1、KeepalivedVRRP介绍keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。keepalived工作原理keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议。虚拟路由冗余协议,可以认为是实现高可用的协议,即将N台提供相同功能的路由器组成一个..

  • Intellij IDEA 最全实用快捷键整理(长期更新)[通俗易懂]

    Intellij IDEA 最全实用快捷键整理(长期更新)[通俗易懂]IntellijIDEA最全实用快捷键整理(长期更新)正文前:1.IDEA内存优化(秒开的快感!!)因机器本身的配置而配置:\IntelliJIDEA8\bin\idea.exe.vmoptions//(根据你的配置变大!!)——————————————Xms2048m-Xmx2048m-XX:MaxPermSize=512m…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号