什麼是跨域,什麼是同源

所謂跨域

  1.就是跨域名,跨端口,跨協議javascript

     例如:若是有兩個服務器,服務器A和服務器B,服務器A上存儲了php數據,script,甚至是css這些文件,而你在服務器B上只寫了html,而後你所在的服務器B上動態建立script,css,php數據(使用ajax請求),向服務器A上請求你想要的script,css,php數請求據(使用ajax)這些文件,請求這些文件後,你再在服務器B上運行你的html,雖然你的地址是在服務器B上,可是你仍是能夠運行效果與在服務器A上運行的效果是同樣的,這樣就是跨域名,跨端口,跨協議,實現了跨域。php

  簡單來講,就是你請求的文件,只要含有「src」,「href」這些屬性,你就能在其餘服務器上,請求你所須要的文件,而後在本身的服務器上運行,就實現了跨域(跨域名,跨端口,跨協議)css

原生的動態請求script文件 html

  var _script = document.createElement("script");
  _script.src="http://10.9.156.108/html5/Ajax/api/sendMessage.php?user="+_user+"message="+_message;
  _script.type="text/javascript";html5

jQuery跨域請求script文件java

$(document).ready(function(){
  //getJSON 後面帶參數,若是不帶參數默認不跨域 ,帶了參數跨域ajax

  //跨域優先
  $.<link rel="icon" href="../img/favicon.ico" type="image/x-icon">("http://10.9.156.108/HTML5/lesson24/test.js?callback=?",[data],function(){});json

  //跨域  有getJSON 和 jsonp 兩種方式
  $.get("http://10.9.156.108/HTML5/lesson24/test.js=",null,function(){},"jsonp");
   
});api

 

所謂同源

  1.就是同域名,同端口,同協議跨域

  例如:若是你有一個服務器A,你所須要的script,css,php文件都在服務器A,你寫的html也在服務器A上,而後運行,出現了效果,若是你想在另外一臺電腦上運行你的項目(注意另外一臺電腦不管有沒有開啓服務器,效果仍是會顯示出來的),只要把你寫在服務器A上的協議,域名,端口以及你的項目名稱複製下來,在另外一臺電腦上運行,一樣會出現相同的效果,這就實現了同源。

  簡單來講,就是你的協議,域名,端口甚至項目名稱都同樣,不一樣電腦都能實現一樣的效果。

 

不管是同臺電腦,仍是不一樣臺電腦,與是否是同一臺電腦沒有關係,都能實現跨域和同源。

 

麼是協議,域名,端口?

 

解釋:假如一個網址是  http://baidu.com:8080?user=name&pwd=password

 

http://   是協議   

baidu.com  是域名(注意:前面加上「wwww」即www.baidu.com不是域名)

8080  是端口    

user=name&pwd=password   是地址帶的參數

相關文章
相關標籤/搜索