支援跨域的html標籤
阿新 • • 發佈:2019-02-16
html中的script、img的src屬性支援跨區,瀏覽器對其沒有限制
傳送的請求都是get請求
script
1.script標籤具有可跨域的特性,瀏覽器對它不限制
2.假設不加dataType:jsonp, jquery底層預設傳送XMLHttpRequest請求。
當用dataType:jsonp,jquery底層建立了script標籤,src=”跨域的地址”。
3.scrip標籤的src中的地址和字尾也沒關係,檔案中指定text/javacript就可以了
<!--這個script是函式,要寫在上面,下面的script跨域獲取到資料返回的是json(),需要呼叫json(),要是寫在下一個script的下面就找不到了--> //script標籤具有可跨域的特性,php返回的是json(),直接呼叫了這個函式 //這個函式的目的就是為了獲取服務端返回的資料,要執行的內容寫在函式中就可以啦 <script> function jsonp(data){ //在服務端data是一個字串,到客戶端data轉為了物件(script標籤具有自動轉換的功能) //若果是字串的話,格式是這樣的:{"name":"\u5f20\u4e09","age":10} //這樣就獲取了服務端的資料,在函式中就可以對服務端的資料進行操作了 console.log(data); } </script> <script src="src-api.php?callback=jsonp"></script>
伺服器端的資料模擬(script):
<?php
header("Content-Type:text/html;charset=utf-8");
$data = $_GET;
//假設下面的陣列是在服務端獲取到的資料,需要把這個資料返回到客戶端
$array = array("name"=>"張三","age"=>10);
//將物件轉化為json格式的字串
$info = json_encode($array);
echo $data["callback"]."(".$info.")";
?>
link標籤
href去請求一個地址,和地址的字尾沒有關係,
在php檔案中已經告訴客戶端伺服器的文字型別了,瀏覽器以該文字型別去解析就行了
<head>
<meta charset="UTF-8">
<title>Title</title>
// 利用link的href屬性跨域
<link rel="stylesheet" href="02link.php">
模擬的服務端php檔案(link)
<?php //告訴客戶端伺服器的文字型別 header("Content-Type:text/css;charset=utf-8"); echo "body{background-color: red}" //若果客戶端需要輸出js檔案的話,文字型別就是text/javascript //header("Content-Type:text/javascript;charset=utf-8"); //echo "alert(1)"; ?>