javascript 跨域问题以及解决办法

 更新时间:2017年07月17日 16:23:44   作者:Dear_Mr  
这篇文章主要介绍了javascript 跨域问题以及解决办法的相关资料,需要的朋友可以参考下

javascript 跨域问题以及解决办法

什么是跨域问题?

跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议、相同域名、相同端口的,否则是不允许访问的

浏览器URL 要访问的URL 结果
http://www.123.com/index http://www.123.com/server 成功
http://www.123.com/index http://www.456.com/server 域名不相同,跨域
http://www.123.com:8080/index http://www.123.com:8888/index.htm 端口不同,跨域
http://www.123.com/index https://www.123.com/index 协议不同,跨域

解决办法

凡是拥有src属性的标签都可以跨域,比如script、img、iframe标签

JSONP

JSONP就是应用了script标签,JSONP的全称是JSON With Padding,JSONP由两部分组成,回掉函数和数据,回掉函数就是当响应到来时应该在页面中调用的函数,回掉函数的名字是在请求中指定的,而数据就是传入回掉函数的JSON数据

例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
  function jsonCallback(data){
    alert(data);
  };
  var url = "http://localhost:8888/test?callback=jsonCallback";
  var script = document.createElement('script'); 
  script.type = "text/javascript";
  script.setAttribute('src', url); 
  document.getElementsByTagName('head')[0].appendChild(script);
</script>
</head>
<body>
</body>
</html>

缺点:确认JSONP请求是否失败并不容易

​ 安全性的问题,JSONP是从其他域加载代码执行,所以要确定其可靠性

以上就是javascript 跨域问题以及解决办法的讲解,大家如果 有疑问可以留言讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • JS实现灯泡开关特效

    JS实现灯泡开关特效

    这篇文章主要为大家详细介绍了JS实现灯泡开关特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • JS扁平化输出数组的2种方法解析

    JS扁平化输出数组的2种方法解析

    这篇文章主要介绍了JS扁平化输出数组的2种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • JS实现弹幕小案例

    JS实现弹幕小案例

    这篇文章主要为大家详细介绍了JS实现弹幕小案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于JSONP跨域请求原理的深入解析

    关于JSONP跨域请求原理的深入解析

    JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题,这篇文章主要给大家介绍了关于JSONP跨域请求原理的相关资料,需要的朋友可以参考下
    2022-01-01
  • knockoutjs模板实现树形结构列表

    knockoutjs模板实现树形结构列表

    这篇文章主要介绍了knockoutjs模板实现树形结构列表的实现代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • JS按钮闪烁功能的实现代码

    JS按钮闪烁功能的实现代码

    js按钮闪烁功能的实现代码分为html和js两部分代码,具体实现代码大家参考下本文
    2017-07-07
  • JavaScript 数组展平方法: flat() 和 flatMap()详解

    JavaScript 数组展平方法: flat() 和 flatMap()详解

    从 ES2019 中开始引入了一种扁平化数组的新方法,可以展平任何深度的数组,这篇文章主要介绍了JavaScript 数组展平方法: flat() 和 flatMap()详解,需要的朋友可以参考下
    2023-06-06
  • jQuery ajax(复习)—Baidu ajax request分离版

    jQuery ajax(复习)—Baidu ajax request分离版

    你没有看错标题,本文的确是在讲Baidu ajax,不过是很久很久以前的版本了,我们先分析一段简单的ajax代码,来自早期的百度七巧板项目通过这个来先复习一遍ajax的知识
    2013-01-01
  • js中通过getElementsByName访问name集合对象的方法

    js中通过getElementsByName访问name集合对象的方法

    下面小编就为大家带来一篇js中通过getElementsByName访问name集合对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 使用js在layui中实现上传图片压缩

    使用js在layui中实现上传图片压缩

    这篇文章主要介绍了使用js在layui中实现上传图片压缩,layui 是一款采用自身模块规范编写的前端 UI 框架,js上传图片压缩百度有很多方法,,需要的朋友可以参考下
    2019-06-06

最新评论