什么是跨域,什么是同源
所謂跨域
1.就是跨域名,跨端口,跨協議
? ? ?例如:如果有兩個服務器,服務器A和服務器B,服務器A上存儲了php數據,script,甚至是css這些文件,而你在服務器B上只寫了html,然后你所在的服務器B上動態創建script,css,php數據(使用ajax請求),向服務器A上請求你想要的script,css,php數請求據(使用ajax)這些文件,請求這些文件后,你再在服務器B上運行你的html,雖然你的地址是在服務器B上,但是你還是可以運行效果與在服務器A上運行的效果是一樣的,這樣就是跨域名,跨端口,跨協議,實現了跨域。
簡單來說,就是你請求的文件,只要含有“src”,“href”這些屬性,你就能在其他服務器上,請求你所需要的文件,然后在自己的服務器上運行,就實現了跨域(跨域名,跨端口,跨協議)。
原生的動態請求script文件?
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";
jQuery跨域請求script文件
$(document).ready(function(){
//getJSON 后面帶參數,如果不帶參數默認不跨域 ,帶了參數跨域
//跨域優先
$.<link rel="icon" href="../img/favicon.ico" type="image/x-icon">("http://10.9.156.108/HTML5/lesson24/test.js?callback=?",[data],function(){});
//跨域 ?有getJSON 和 jsonp 兩種方式
$.get("http://10.9.156.108/HTML5/lesson24/test.js=",null,function(){},"jsonp");
});
?
所謂同源
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 ? 是地址帶的參數
轉載于:https://www.cnblogs.com/cb521413/p/8708228.html
總結
以上是生活随笔為你收集整理的什么是跨域,什么是同源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python xlrd简单读取excel
- 下一篇: 【bzoj5084】hashit 广义