0

ここで問題があります。

$resource を使用して単純な GET を実行していますが、最近サーバーに送信するデータが大量にあるのに、414 エラー URI が大きすぎます。解決策の 1 つは、GET の代わりに POST を使用することです。

$http.post や $http にパラメータを渡すなどの解決策を検索しようとしましたが、役に立ちませんでした。誰かが私にそれを行う方法についてのチュートリアルを教えてもらえますか?

編集:

これが私がやったことです:

    var data_2 = $.param({'method':"update_proj",
            'proj_id': proj_id,
            'ptitle': project.title,
            'pdescription': p_desc,
            'pexposure': tech,
            'pcompany': project.company,
            'pteamsize':project.teamsize,
            'ppoc': project.poc,
            'pemail': c_email,
            'pcontact': project.contact,
            'pimg':project.img,
            'pvideo':project.video,
            'prskill': rskills,
            'poutcome': project.outcome});

    $http({method:'update_proj',
      url: "http://osmosisgal.appspot.com/update_proj", 
      data: data_2,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
    .success(function(data,status){
     ...
    });

GAE での私の python コードは次のとおりです。

    class ActionHandler(webapp.RequestHandler):
       def update_project(self):
           proj_id = self.request.POST["proj_id"]
               .
               .
               .

しかし、私はまだこのエラーがあります

Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/s~osmosisgal/1.366101252356646323/new_backend.py", line 1274, in update_project
    proj_id = self.request.POST["proj_id"]
  File "/python27_runtime/python27_lib/versions/third_party/webob-1.1.1/webob/multidict.py", line 312, in __getitem__
    return self._decode_value(self.multi.__getitem__(self._encode_key(key)))
  File "/python27_runtime/python27_lib/versions/third_party/webob-1.1.1/webob/multidict.py", line 568, in __getitem__
    raise KeyError("No key %r: %s" % (key, self.reason))
KeyError: "No key 'proj_id': Not a form request"
4

2 に答える 2

1

ドキュメントから、メソッドが最初にURLではなくメソッドのタイプを取得していることがわかります。

$http({method: 'POST', url: '/someUrl', data: my_data}).
  success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
  }).
  error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

データの場合、ペア、キーと値を使用して json オブジェクトを作成し、上記のように関数に渡すことができます。

また、コントローラーの定義で $http を渡すことを忘れないでください。

function MyController($scope, $http) {...}; 
于 2013-03-21T14:35:59.067 に答える
0

私はそれを解決することができました。最初はすべての静的ファイルを GAE でホストしていませんでしたが、ホストした後はすべてが機能します。

于 2013-03-25T13:54:54.647 に答える