2012-03-20 3 views
3

私はangularjsとpythonを初めて使っています。この問題があります。私はanglejsを使ってフォームのデータをPythonサーバー側に渡そうとしていました。私はjsonオブジェクトにフォームを変換してから、それを私の.jsコントローラに送りました。anglejsを使ってPythonにjsonオブジェクトを渡す

controller.js:

jsonObj = this.form.toJson; 
    $xhr('POST','/form/processform',jsonObj,function() { 
     alert("Done!"); 
     window.load("/"); 
    }, function(){ 
     "Request failed"; 
    }); 

Pythonの: ":いいえJSONオブジェクトをデコードすることはできなかったJSONDecodeError"

from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
import simplejson as json 

class processForm(webapp.RequestHandler): 
    def post(self): 
     form = json.loads(self.request.body) 
     # process forms 
     self.redirect("#/")#redirects to main page 

私はと呼ばれるエラーを受け取りました。私は 'POST'を 'JSON'に置き換えようとしましたが、うまく動作していないようです。私はangularjsの$ resourceも読んだことがありますが、使い方が分かりません。

これは$ xhrの使い方が間違っているためですか?どんな助けでも大歓迎です! :)

+0

コンソール変数に印刷してみ** self.request。 body ** jsonの場合は純粋にjson-stringでなければなりません。 – bua

+0

あなたの投稿要求の構造を調べてください。 – Marcin

答えて

0

JSONDecodeErrorには、jsonObj変数に有効なJSONオブジェクトが含まれていません。

私はこの問題はここにあると信じて:

jsonObj = this.form.toJson; 

あなたが代わりにそれを変数にassigingのtoJsonメソッドを呼び出すshoud:

jsonObj = angular.toJson(this.form); 
+0

うーん..それはまだ動作していないようです。私は、objには "toSSON"というメソッドがないというエラーが出てきました。インポートするライブラリはありますか? – user1140240

+0

私はコードスニペットを修正しました。参照:http://docs.angularjs.org/#!/api/angular.toJson –

+0

よろしくお願いします。できます!本当にありがとう!しかし、明確にするために、なぜ$ xhrで 'JSON'を置き換えるのがうまくいかないのですか?いつ私たちは 'POST'または 'GET'の代わりにこれを使用しますか?申し訳ありませんが、私はこれに関する多くの情報を見つけることができないようです。 – user1140240

関連する問題