jsonp跨域问题【主要解决的是返回状态码是200,但是js脚本仍然是执行error模块问题】 |
您所在的位置:网站首页 › jsonp返回的是什么 › jsonp跨域问题【主要解决的是返回状态码是200,但是js脚本仍然是执行error模块问题】 |
我jsonp的坑在这里: 最终发现后台传回来的数据是这样的
参照此文章跨域请求之jQuery的ajax jsonp的使用解惑 http://www.cnblogs.com/know/archive/2011/10/09/2204005.html解决问题, 原因是返回的数据中不能有" ",正确返回的数据是这样的,如下图所示:
概述: 1、首先要了解什么是域? 2、为什么要跨域,跨域能解决什么问题? 3、jsonp 4、jsonp支持POST请求吗? 不支持,只支持GET请求,除非其他办法,未知 5、jquery对jsonp的支持 6、ajax 和jsonp 不是一码事 细读详解http://blog.csdn.net/superhosts/article/details/9057301 什么是域,简单来说就是协议+域名或地址+端口,3者只要有任何一个不同就表示不在同一个域。跨域,就是在一个域中访问另一个域的数据。 如果只是加载另一个域的内容,而不需要访问其中的数据的话,跨域是很简单的,比如使用iframe。但如果需要从另一个域加载并使用这些数据的话,就会比较麻烦。为了安全性,浏览器对这种情况有着严格的限制,需要在客户端和服务端同时做一些设置才能实现跨域请求。 JSONP简介 JSONP(JSON with Padding)是一种常用的跨域手段,但只支持JS脚本和JSON格式的数据。顾名思义,JSONP是利用JSON作为垫片,从而实现跨域请求的一种技术手段。其基本原理是利用HTML的标签天生可以跨域这一特点,用其加载另一个域的JSON数据,加载完成后会自动运行一个回调函数通知调用者。此过程需要另一个域的服务端支持,所以这种方式实现的跨域并不是任意的。 JQuery对JSONP的支持 JQuery的Ajax对象支持JSONP方式的跨域请求,需要像此文章http://www.jb51.net/article/75768.htm【此文章有自己实现jsonp,可以学习】说的,必须加上crossDomain: true,否则报错。
自己完整jquery框架中的js实现jsonp跨域请求并处理返回值:【仅供参考,标红字段必须含有】: 注意:后台传回来的数据必须是 回调函数名(json格式数据) 切记"回调函数名(正确的json格式数据)" 返回这种格式数据一定是错误的,不能有双引号 后台repsonse设置【标注紫红的两个参数必须设置,一个是响应类型,另一个是允许所有ip访问】:
============================== 调用其他公司已经实现的API,完成音乐播放功能(包括获取音乐列表和音乐,有代码供下载) jQuery+JSONP通过调用虾米接口实践 http://caibaojian.com/jquery-jsonp-xiami-api.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |