JSONP与跨域的Ajax

在通常情况下,为了网站的安全性,Ajax对象只能接见到与当前页面位于同一个域下的资本。但偶然每每须要接见别的域中的资本,这是就应用到了跨域这个观点,这个中应用最普遍的就是JSONP。
JSONP,即JSON with padding(添补式的JSON)。JSON由两部分构成,一部分是回调函数,一部分是所包括的数据。回调函数是要求数据时指定,而数据则是跨域资本返回的JSON数据。
要完成运用JSONP跨域须要三步:
第一步,动态建立一个script元素;
第二步,设置script元素的src为想要跨域要求资本的url,这个url的参数callback为要求到资本后的处置惩罚函数;
第三步,定义处置惩罚函数,处置惩罚返回的对象;
第四步,把script元素添加到页面中

var scriptEl = document.createElement('script');
scriptEl.src = 'http://www.freegeoip.net/json/?callback=handleResponse';
document.body.appendChild(scriptEl);
function handleResponse(response) {
  /*response的范例是Object*/
  alert(response.country_name);
}

然则JSONP也并非圆满的,主要有两个瑕玷:
一、因为要求的是其他域中的资本,很有能够这个资本不安全,形成网站的丧失。
二、不容易肯定资本是不是要求胜利。

    原文作者:秦老爷子
    原文地址: https://segmentfault.com/a/1190000008441305
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞