首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax调用的Django生产问题

ajax调用的Django生产问题
EN

Stack Overflow用户
提问于 2012-08-25 13:24:22
回答 1查看 188关注 0票数 1

我第一次将代码从开发机器转移到生产中,在我的机器上工作的东西™在活动服务器上崩溃了。所发生的情况是,当我从gamedb检索gamedb实例试图在current_player视图中获取game.players[0]时,它告诉我gameNone。但奇怪的是,如果我获取ajax url并将其粘贴到浏览器中,视图将正确返回它应该返回的json。因此,呼吁如下:

代码语言:javascript
复制
http://example.com/current_player/47dd98e9c6aa06ab646d39e516ce54d6db70c2bb/

给出以下正确的输出:

代码语言:javascript
复制
["Eve", "e4a70a8e99a4efdfd9331d180cd51798b2291a46"]

我怀疑我设置ajax调用的方式有问题,但没有发现任何错误。

这是我的整个呼叫堆栈:

urls.py

代码语言:javascript
复制
url(r'^start/$', 'briscola.views.play')
url(r'^current_player/([a-z0-9]{40})/$', 'briscola.views.current_player')

game.js

代码语言:javascript
复制
function currentPlayer(game_uid) {

  $.ajax({
    type: 'GET',
    url: '/current_player/' + game_uid + '/',
    success: function(play_data) {

      var player_name = play_data[0];
      console.log('current player ' + player_name);

    }

  });
}

views.py

代码语言:javascript
复制
def start(request):

    p1 = Player('Eve')
    p2 = Player('Adam')

    game = Game([p1, p2])
    gamesdb.set(game.uid, game)

    players = game.players

    output = dict(players=players)

    return render_to_response('index.html', output)

@csrf_exempt
def current_player(request, game_uid):

    game = gamesdb.get(game_uid)

    current_player = game.players[0] 
    play_data = simplejson.dumps([current_player.name, current_player.uid])

    return HttpResponse(play_data, mimetype='application/json')    
EN

回答 1

Stack Overflow用户

发布于 2012-08-25 13:39:49

您需要传递到$.ajax附加param:dataType: "json"。或者使用$.getJSON包装器来为$.ajax准备必要的参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12122361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档