5星做号宿水软件的网站,长沙第三方网站建设公司,沈阳建站免费模板,蓝色扁平化企业网站JSONP即JSON with Padding。由于同源策略的限制#xff0c;XmlHttpRequest只允许请求当前源#xff08;域名、协议、端口#xff09;的资源。如果要进行跨域请求#xff0c;我们可以通过使用 html的script标记来进行跨域请求#xff0c;并在响应中返回要执行的script代码XmlHttpRequest只允许请求当前源域名、协议、端口的资源。如果要进行跨域请求我们可以通过使用 html的script标记来进行跨域请求并在响应中返回要执行的script代码其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式称为JSONP。 JSONP的优点是它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制它的兼容性更好在更加古老的浏览器中都可以运行不需要XMLHttpRequest或ActiveX的支持并且在请求完毕后可以通过调用callback的方式回传结果。 JSONP的缺点则是它只支持GET请求而不支持POST等其它类型的HTTP请求它只支持跨域HTTP请求这种情况不能解决不同域的两个页面之间如何进行JavaScript调用的问题。 JSONP的好处就是能够很好的解决跨域请求的问题但是也有一些不足之处 请求的状态不够丰富我们只能侦听请求成功时的状态如果请求失败我们无法通过一个状态码知晓所以如果请求失败的话没有任何反馈给用户可能会造成用户的困惑。 由于script标签不受同源的限制同时也造成了一些安全性的问题 使用远端网站的 script 标签会让远端网站得以注入任何的内容至网站里。如果远端的网站有 JavaScript 注入漏洞原来的网站也会受到影响。 现在有一个正在进行计划在定义所谓的 JSON-P 严格安全子集使浏览器可以对 MIME 类别是“application/json-p”请求做强制处理。如果回应不能被解析为严格的 JSON-P浏览器可以丢出一个错误或忽略整个回应。 比较一下json与jsonp格式的区别 json格式 {message:获取成功,state:1,result:{name:工作组1,id:1,description:11}
} jsonp格式 callback({message:获取成功,state:1,result:{name:工作组1,id:1,description:11}
}) 看出来区别了吧在url中callback传到后台的参数是神马callback就是神马jsonp比json外面有多了一层callback()。这样就知道怎么处理它了。于是修改后台代码。 其他资料 http://kb.cnblogs.com/page/139725/ http://www.cnblogs.com/sunxucool/p/3433992.html转载于:https://www.cnblogs.com/tianma3798/p/5091984.html