不知道为何拿不下来数据!
大概明白楼主是个什么意思,估计是没弄明白jsonp的原理,只想跨域。
jsonp
是一个利用script
标签进行跨域请求的方法。
原理是利用script
的src
属性去引用url
,就像请求静态的JS资源一样去得到数据。
那么,你请求的资源,是会被直接运行的,所以,返回的数据就必须符合javascript
语法才行。
如果只是简单的字符串,会被浏览器认为是不可执行的代码而报错。
jsonp
的方法就是将数据包裹在一个函数内,例如callback111({'msg':'nihao'})
然后,在客户端中也有一个函数callback111
来接收数据,进行处理。
这样就能实现跨域。
但是,这样需要浏览器和服务器双方进行沟通才行,由浏览器告诉服务器回调函数名称,让服务器根据函数名进行生成jsonp
的数据,否则,还是不可能实现跨域的。
用JQuery可以取得数据
function callback(data) {
console.log(data);
}
$(function () {
$.ajax({
type:"get",
dataType:"jsonp",
url:"http://api.asilu.com/weather/",
jsonpCallback:"callback"
});
})
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答875 阅读✓ 已解决
6 回答1k 阅读
这个是后台返回数据的问题,jsonp与json返回的数据不一样,举栗子,jsonp返回的应该是
$callback是返回调用的函数名称,注意json前后的小括号