什么是跨域?

想要了解跨域,首先需要了解下浏览器的同源机制:

JSONP和AJAX相同,都是客户端向服务器端发送请求:给服务器端传递数据 或者 从服务器端获取数据 的方式
JSONP属于非同源策略(跨域请求) ->实现跨域请求的方式有很多种,只不过JSONP是最常用的
区分同源和非同源:
用当前页面的地址 && 数据请求的接口地址
1)协议2)域名或者IP3)端口号以上三部分完全相同属于同源策略,我们使用AJAX技术获取数据;只要有一个不一样的,就属于非同源,我们一般使用JSONP获取数据;

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

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

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://www.cnblogs.com/Scar007/p/7601121.html

关于jsonp跨域的问题以及解决方法(跨域、同源与非同源)相关推荐

  1. 浏览器禁止跨域请求json数据解决方法--jsonp

    浏览器禁止跨域请求json数据解决方法--jsonp 参考文章: (1)浏览器禁止跨域请求json数据解决方法--jsonp (2)https://www.cnblogs.com/uyisi/p/56 ...

  2. PHP解决http和https跨域,php中http与https跨域共享session的解决方法

    这篇文章主要介绍了http与https跨域共享session的解决方法,需要的朋友可以参考下 遇到了HTTP.HTTPS协议下session共享解决cookie失效的问题,这里提供一个临时解决办法. ...

  3. kuayu react_React+Spring实现跨域问题的完美解决方法

    最近小编在学习react,在学习过程中遇到React+Spring实现跨域问题,下面小编记录了整个问题过程,给大家做个参考. react 跨域访问后台,默认是有跨域问题,并且火弧和谷歌浏览器,对跨域问 ...

  4. 造成跨域的原因和解决方法

    造成跨域的原因和解决方法 参考文章: (1)造成跨域的原因和解决方法 (2)https://www.cnblogs.com/wangpenghui522/p/6284355.html 备忘一下.

  5. 跨域问题及常见解决方法---以 Geoserver 为例

    跨域问题及常见解决方法---以 Geoserver 为例 跨域问题 跨域简介 解决跨域常用方法 前端代理 后端处理 其他代理(nginx) Geoserver 解决跨域 免费解决跨域工具:[geose ...

  6. 查找计算机 域服务不可用,win7系统打印文件提示Active Directory域服务不可用解决方法...

    办公用户因为工作需要,就需要安装打印机,也是办公设备中不可缺少一部分,使用过程中难免遇到一些故障问题,Win7系统打印文件时频繁弹出提示"Active Directory域服务当前不可用&q ...

  7. Java后端带参跨域访问_java后端解决请求跨域

    跨域 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 例如:a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同 ...

  8. 跨域的知识和解决方法

    1.https://segmentfault.com/a/1190000000709909 2.https://blog.csdn.net/qq_38128179/article/details/84 ...

  9. 域 无法管理计算机,计算机无法加入域的终级解决方法

    计算机无法加入域|不能联系域控制器 1.您无法用NetBois域名加入域. 2.组策略无法正常应用. 3.无法打开网上领居和访问共享文件. 这个问题有可能是Wins服务器没有正确配置或TCP/IP N ...

最新文章

  1. 图解 SQL,这也太形象了吧!
  2. 2015年十佳IDC评选结果:50强名单揭晓
  3. 神经网络的物理学解释(一)---权重与概率幅
  4. OTA江湖浪潮再起,世界邦的出境定制自由行之路难以亨通?
  5. 使用QSerialport读取串口数据并处理
  6. 嵌入式开发中模拟SPI的驱动
  7. 奇妙的安全旅行之DES算法(二)
  8. vue点击ul中的li显示,点击其他地方隐藏
  9. 面向科研的推荐系统Benchmark诞生!
  10. 这五个有用的 CSS 属性完全被我忽视了
  11. sqlmap使用教程(超详细)
  12. VS2010快捷键设置
  13. UL -758_2022电器布线电线电缆安全标准,刚刚发行最新版
  14. mac系统如何获取最好权限删除顽固文件?
  15. php阴阳万年历转换的接口,用php写的阴阳万年历
  16. 三菱系统四轴正反转参数_三菱第四轴参数
  17. Location is not available,the folder or directory is corrupted and unreadable
  18. python无限制邮件群发软件_收藏 - 使用Python通过SMTP协议群发/单发邮件方法
  19. 公派访问学者申请签证的五点建议
  20. android 存储盘 dcim,DCIM是个啥?安卓图片存储位置指南

热门文章

  1. 基于 FFmpeg SDL 的视频播放器的制作 课程的视频
  2. EI会议推荐-计算机主题
  3. SSH 登陆虚拟机VBox
  4. dubbo 支持服务降级吗_Dubbo服务降级
  5. 小学生班干部竞选自我介绍PPT模板
  6. 4种SaaS商业模式+12种商业模型(赠阅)
  7. after伪元素实现空心三角箭头和X图标
  8. Go语言学习笔记(一)Let#39;s 干吧
  9. 怎样在家远程访问单位的电脑呢 有这两种方法
  10. 基于RV1126 Video分析-----sensor 的 media模块注册