Ajax--同源策略,jsonp跨域传输

Posted QinXiao.Shou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax--同源策略,jsonp跨域传输相关的知识,希望对你有一定的参考价值。

什么是同源策略?


阮一峰的博客 同源策略 


同源策略的解决方法: 跨域传输

    img 标签的src是可以引入其他域名下的图片
script标签的src属性同理 ,也可以引入其他域名下的js文件,并执行

1.script的属性引入文件(页面地址)的时候是允许跨域
2.在页面地址后,拼接?callback=参数,让后端能接受到我们的参数
3.需要后端的配合,接收传过来的参数(函数名称),把我们处理好的json数据,作为函数的参数,再传回到前端
4.把我处理好的json数据,作为函数的参数在传回到前端

核心技术:
前端定义函数后端调用函数
(前端定义函数发送给后台,后台把数据作为定义函数的形参传给前端)



跨域传输例子:
cross.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 
 9 </body>
10 </html>
11 
12 <script src="lib/jquery-1.12.2.js"></script>
13 <script>
14 function getCrossJson() {
15         alert(‘我们在html页面创建了一个函数,但是不在这里调用‘)
16 }
17 </script>
18 <script>
19     $.ajax({
20         //localhost 和 127.0.0.1 域名不相同,就代表了跨域
21         //http://localhost/AJAX/day02/13_cross.html
22         //http://127.0.0.1 /AJAX/day02/13_cross.html
23        url:‘13_cross.php24     });
25 </script>

cross.php

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 
 9 </body>
10 </html>
11 
12 <script src="lib/jquery-1.12.2.js"></script>
13 <script>
14 function getCrossJson() {
15         alert(‘我们在html页面创建了一个函数,但是不在这里调用‘)
16 }
17 </script>
18 <script>
19     $.ajax({
20         //localhost 和 127.0.0.1 域名不相同,就代表了跨域
21         //http://localhost/AJAX/day02/13_cross.html
22         //http://127.0.0.1 /AJAX/day02/13_cross.html
23        url:‘cross.php‘
24     });
25 </script>

 



 

以上是关于Ajax--同源策略,jsonp跨域传输的主要内容,如果未能解决你的问题,请参考以下文章

解决Ajax 跨域问题 - JSONP原理解析

前端 - jsonp 跨域ajax

ajax基础4--什么是跨域以及如何解决跨域

JSONP实现Ajax跨域

跨域请求Ajax跨域请求JSONP

Django 第十九篇JS实现的ajax同源策略和前端jsonp解决跨域问题