RT
我想通过AJAX获取豆瓣API的json data。
JS代码如下:
- JScript code
function testAjax() { $.ajax({ url: "http://api.douban.com/book/subject/1220562?alt=json", type: "GET", dataType: "json", success: function (data) { $("#name").html(data.category.title.$t); $("#age").html(data.category.author.name.$t); $("#content").html(data.category.content.$t); } }) }
但是报错了,error msg是:
XMLHttpRequest cannot load http://api.douban.com/book/subject/1220562?alt=json. Origin http://localhost:51011 is not allowed by Access-Control-Allow-Origin.
请问各位大师,我在哪一步错了???
我上网查了一下,有一种叫jsonp的跨域调用json的做法。
改进了一下写法后,变成下面:
- JScript code
function testAjax() { $.ajax({ url: "http://api.douban.com/book/subject/1220562?alt=json", type: "GET", dataType: "json", success: function (data) { $("#name").html(data.category.title.$t); $("#age").html(data.category.author.name.$t); $("#content").html(data.category.content.$t); } }) }
但是虽然这样能够取到data了,但好像在取到data后要编译一次,
因为取到的data中有些肯定编译不过,于是又悲剧了。
可能还是我的写法有问题吧,肯定各位大师指正!!!!!!!!!!
------解决方案--------------------
LZ已经在javaeye
http://www.iteye.com/problems/86113
回复你了..
不知道这样是不是符合你的要求.
------解决方案--------------------
1跨域了,需要做代理
2,jsonp也需要动态页处理你发送的参数你才能获取到,不知道你说的编译指什么。jQuery jsonp跨域原理