支持跨域的html标签

来源:互联网 发布:锵锵三人行9月11 知乎 编辑:程序博客网 时间:2024/04/28 14:51

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)";?>

img

0 0
原创粉丝点击