什么是JSONP

2019-07-09  本文已影响0人  花泽冒菜

概念

JSONP全称JSON with Padding,是一种跨域请求资源的方法。

利用HTML的script标签不受浏览器同源策略限制的特性,通过script标签的src属性加载位于其他地方(如服务器)的脚本(本质上是一个带参数的函数调用脚本)来调用客户端事先写好的函数。

(另外,凡是拥有”src”这个属性的标签都拥有跨域的能力,比如<\script>、<\img>、<\iframe>)

使用方法

正如上文所说,利用JSONP请求的结果其实是一个带参数的函数调用脚本,具体实现过程如下:

1.在script标签中指定要请求的url,url中的jsonp参数告诉服务器需要被调用的函数的名称:

<script type="text/javascript" src="http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction"></script>

2.编写一个带参数的函数,参数即为需要处理的数据。

<!DOCTYPE html>
<html>
<head>
    <title>Example For JSONP</title>
</head>
<body>
    <div id="divCustomers">
    </div>
    <script type="text/javascript">
        function onCustomerLoaded(result) {
            var html = '<ul>';
            for (var i = 0; i < result.length; i++) {
                html += '<li>' + result[i] + '</li>';
            }
            html += '</ul>';
            document.getElementById('divCustomers').innerHTML = html;
        }
    </script>
    <script type="text/javascript" src="http://www.yiwuku.com/myService.aspx?jsonp=onCustomerLoaded"></script>  // 请求到一个调用onCustomerLoaded函数的脚本,这一句相当于:onCustomerLoaded(result);
</body>
</html>

JSONP只能使用get请求。

Reference

1.https://blog.csdn.net/hansexploration/article/details/80314948

2.https://segmentfault.com/q/1010000009708151

上一篇 下一篇

猜你喜欢

热点阅读