JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1、example、com 的网页无法与不是 server1、example、com的服务器沟通,而 HTML 的
2、在客户端写callbackFunction函数的实现
function CustomerLoaded(result,methodName)
{
var html='
’;
’;for(var i=0;i
{
html+='
- ’+result[i]+'
’;}
html+='
document、getElementById(‘pCustomers’)、innerHTML=html;
}
3、页面展示
4、最终Page Code
lns=”http://www、w3、org/1999/xhtml”>
Top Customers with Callback
function onCustomerLoaded(result, methodName) {
var html = ‘
’;
’;for (var i = 0; i < result、length; i++) {
html += ‘
- ’ + result[i] + ‘
’;}
html += ‘
document、getElementById(‘pCustomers’)、innerHTML = html;
}
三、JSONP的优缺点
1、优点
它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。2、缺点
它只支持GET请求而不支持POST等其它类型的HTTP请求。它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。jsonp在调用失败的时候不会返回各种HTTP状态码。缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。

标签: jsonp
本文地址:https://www.lifejia.cn/news/199822.html
免责声明:本站内容仅用于学习参考,信息和图片素材来源于互联网,如内容侵权与违规,请联系我们进行删除,我们将在三个工作日内处理。联系邮箱:cloudinto#qq.com(把#换成@)
