1. 程式人生 > >Ajax--同源策略,jsonp跨域傳輸

Ajax--同源策略,jsonp跨域傳輸

href 需要 lan 其他 target 引入 處理 www tle

什麽是同源策略?


阮一峰的博客 同源策略 


同源策略的解決方法: 跨域傳輸

    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.php‘ 24
}); 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跨域傳輸