概念
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
网友评论