1. 程式人生 > >跨域請求

跨域請求

object php 格式 網頁 bsp type console main origin

一、jsonp

JSON(JavaScript Object Notation)和JSONP(JSON with Padding):將json格式數據以function包裹起來,通過script標簽發生至後臺,並且返回接受數據

//通過script標簽引入一個文件,這個文件載入成功後會執行我們在url參數中指定的函數,並且會把我們需要的json數據作為參數傳入。所以jsonp是需要服務器端的頁面進行相應的配合的。
1. callback參數 為方法名
//方法在跨域訪問鏈接<script src="http://test.com/07cross_domain.php?callback=username"> <//script>的前面

	function username(data){
			console.log(data);//[1, 2, "username"]
		}
		<script src="http://test.com/07cross_domain.php?callback=username"> <//script>

  2.jquery 封裝jsonp 實現跨域訪問

    $.getJSON(‘http://test.com/07cross_domain.php?callback=?‘,function(data){
        console.log(data);//[1, 2, "jQuery111308241057162129959_1460185199870"]
})

二、iframe或img標簽跨域

其實jsonp是依靠 script標簽跨域

三、Proxy後臺代理

例如:PHP通過Cur模塊 l實現網頁代理proxy

四、同源機制 CORS(Access-Control-Allow-Origin)

// 指定允許其他域名訪問  
header(‘Access-Control-Allow-Origin:*‘);  
// 響應類型  
header(‘Access-Control-Allow-Methods:POST‘);  
// 響應頭設置  
header(‘Access-Control-Allow-Headers:x-requested-with,content-type‘);

技術分享

跨域請求