什么是跨域?怎么解决跨域问题?「建议收藏」

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

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

什么是跨域?

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

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

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,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。

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

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

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

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

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130857.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月13日 上午11:00
下一篇 2022年6月13日 上午11:16


相关推荐

  • Python里divmod_python基本函数

    Python里divmod_python基本函数前言我们都知道,python中//代表整数运算中的取整,%代表整数运算中的取余,那么有什么函数可以同时取到整数和余数吗?答案是有的,使用python内置函数divmoddivmod首先看一下源

    2022年7月30日
    10
  • win10 directshow无法释放_windowmode

    win10 directshow无法释放_windowmode现在单独的directshowsdk包已经没有了,从directx9.0c开始directshow和directx分开发布,现在的directshow已经集成到windowsSDK当中了,不需要单独安装。

    2022年10月12日
    8
  • webstorm2021激活码_通用破解码

    webstorm2021激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    278
  • c语言中cstring头文件不能用,因为cstring头文件里面有一个神器 strstr「建议收藏」

    c语言中cstring头文件不能用,因为cstring头文件里面有一个神器 strstr「建议收藏」Output32GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATAGATACTAGATA…

    2025年11月7日
    6
  • 手机开发平台介绍[通俗易懂]

    手机开发平台介绍[通俗易懂]
    刚刚进入手机研发领域,为今后职业生涯规划,从网上搜了资料方便学习。
    手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多。
    手机可分为智能手机开发和featherphone手机。开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian、windowsmobile、linux、iPhone、Android、BlackBerry、j2me、brew等,支持手机应用程序通过OTA下载和安装;封闭式平台包括MTK、展讯、TI、飞利浦等。下面分别介绍。

    2022年8月12日
    11
  • win10重置网络命令_Win10怎么重置网络 Win10重置网络命令使用方法

    win10重置网络命令_Win10怎么重置网络 Win10重置网络命令使用方法有时候 Windows 系统出问题的时候 会导致网络异常 无法正常上网 甚至是重新连接网络 依然会出现无法连接的现象 下面就来为大家分享 2 种重置网络的方法 有需要了解的小伙伴 快来涨知识吧方法一 使用命令重置 Win10 网络命令 netshwinsock 这是一个通用的 Windows 系统重置网络命令 不仅适合 Win10 还是适合 Win8 Win7 和 WindowsXP 系统 步骤如下 1 首先

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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