我试图将这两部分粘合在一起,我甚至不知道问题在哪里,没有alert(),firebug也没有告诉我任何事情。
// django with yellow api to find_business search:
// ----------------------
def get_yellow(request):
mimetype = 'application/json'
yapi = YellowAPI(settings.YELLOW_API_KEY, test_mode=True, format='JSON', handlers=[])
data = yapi.find_business(what='403-253-0395', where='Calgary', uid='127.0.0.1')
print data #I can see here there is a result
return HttpResponse(data,mimetype)
// jQuery
// ----------------------
$(document).ready(function(){
$.getJSON('http://myserver:8000/get_yellow/',
function(data) {
alert('Fetched ' + data.length + ' items!');
})
});
// I'm including a full response on a simple call, is this a valid json?
// ----------------------{"summary":{"what":"403-253-0395",“where”:“卡尔加里”,“纬度”:“”,“经度”:“”,"firstListing":1,"lastListing":1,"totalListings":1,"pageCount":1,"currentPage":1,"listingsPerPage":40},"listings":{"parentId":"","isParent":false,"distance":"",“content”:{“视频”:{“avail”:false,"inMkt":false},“照片”:{“avail”:false,"inMkt":false},“个人资料”:{“avail”:false,"inMkt":false},"DspAd":{"avail":false,"inMkt":false},"Url":{"avail":false,"inMkt":false},"Logo":{"avail":false,“inMkt”:false},"id":"1931218",“name”:“未来商店”,“地址”:{“街道”:“114.04424-33遗产草地路东南”,“城市”:“卡尔加里”,"prov":"AB","pcode":"T2H3B8"},“geoCode”:{“纬度”:“50.987988”,“经度”:“-50.987988”}
发布于 2011-03-22 22:02:37
你的javascript中有一个语法错误。你少了一个分号。应该是:
$(document).ready(function(){
$.getJSON('http://myserver:8000/get_yellow/',
function(data) {
alert('Fetched ' + data.length + ' items!');
});
});此外,如果你所寻找的是一种调试api代码的方法,那么只需在当前浏览器的地址栏中输入url (http://myserver:8000/get_yellow/)即可。在尝试使用javascript调用它之前,您可能应该先这样做。
更新:
如果这不是跨浏览器请求,则调用应如下所示:
$(document).ready(function(){
$.getJSON('get_yellow/',
function(data) {
alert('Fetched ' + data.length + ' items!');
});
});如果是跨浏览器请求,则应改用jsonp:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "http://myserver:8000/get_yellow/",
dataType: "jsonp",
success: function(data) {
alert('Fetched ' + data.length + ' items!');
}
});
});发布于 2011-03-22 22:23:21
在调用$.getJSON()之后缺少一个分号。在技术上不是必需的,但我见过javascript在没有它们的情况下表现得很奇怪。当你用浏览器点击http://myserver:8000/get_yellow/时会发生什么?你看到JSON了吗?
我在末尾添加了一个']}‘之后,您提供的示例JSON在JSONLint中进行了验证(我假设这不是完整的响应。你确定它是有效的吗?在getJSON()的jQuery应用程序接口中:
从JSON1.4开始,如果jQuery文件包含语法错误,请求通常会以静默方式失败
发布于 2011-03-23 02:00:38
从视图上看,我总是使用以下代码将数据推送到javascript,它工作得很好。数据可以是JSON格式,也可以不是JSON格式,先试试下面这个简单的案例,看看数据是否被推送到了javascript:
from django.utils import simplejson
def get_yellow(request):
colours = ['red', 'blue', 'yellow']
data = simplejson.dumps(colours)
return HttpResponse(data, mimetype='application/javascript')如果您可以从javascript中警告上述值,请在您的代码中尝试以下操作:
def get_yellow(request):
yapi = YellowAPI(settings.YELLOW_API_KEY, test_mode=True, format='JSON', handlers=[])
data = yapi.find_business(what='403-253-0395', where='Calgary', uid='127.0.0.1')
return HttpResponse(simplejson.dumps(data), mimetype='application/javascript')https://stackoverflow.com/questions/5392350
复制相似问题