2011-12-28 5 views
1

私はこれを約1時間半にわたって頭の中で掻いてきました。ですから、私は$ .ajaxを介してフォームを送信していて、ジャンゴからjson応答を返すことを期待しています。 >jQueryがこのJSON応答を正しく処理しないのはなぜですか?

 redirectUrl = '/user/purchase/' + str(purchase.pk) + '/' 
     response_data = {} 
     response_data['redirect'] = redirectUrl 
     response_data['status'] = 200 

     rsp = HttpResponse(simplejson.dumps(response_data)) 
     rsp["CONTENT-TYPE"] = "application/json" 

     return rsp 

場合はjQueryの - フロントエンドには

、JSは、バックエンドでは、この

 $.ajax({ 
      "type" : "POST", 
      "url" : action, 
      "dataType" : "json", 
      "data" : serialized_form, 
      "success" : function (data) { 
       alert('hey') 
       console.log(data); 
       //$("#add_shipping").submit(); 
      }, 
      "error" : function (data) { 
       alert(data) 
      } 
     }); 

のように見える、Djangoはそのようなシリアル化されたJSON を詰めHttpResponseオブジェクトを返します私はそれを尋ねたようにコンソールにロギングするのではなく、レスポンスを取得し、preタグで囲まれたブラウザにフォーマットされたjsonを表示するだけです。私はこれが私のContent-typeヘッダと何か関係があるかもしれないと推測していますが、私はそれが 'application/json'で応答していると言うことができるからです。誰かが私が間違っているかもしれないと思いますか?ありがとうございました!

答えて

2

送信をキャンセルせずにフォームの送信イベントでそのコードを実行している可能性があります。

したがって、ブラウザはフォームを送信してそのページに移動しています。

return falseを追加します。

+0

ありがとうございます、私は今それについて取り組んでいますが、私が言う限り、私は間違っています。私はもっ​​と深く掘り下げていますが、これは正しい道のようです。 – Hacknightly

+0

ハンドラを見せてもらえますか? – SLaks

+0

さて、私は実際には、他のsubmit関数のコールバック内にあるフォームを送信しようとしていましたが、間違ったフォームを対象としていました。しかし、SLaksが正しい答えに非常に近いので、ティックは彼の道を行く。助けを借りてくれてありがとう:) – Hacknightly

関連する問題