0

次のようなもので、フレックスとレールの間で更新を試みています。

// TODO Auto-generated method stub
var strXml:XML = <test>
<test_id>{txtMarketId.text}</test_id>
<market_name>{txtMarketName.text}</market_name>
</test>;

req = new URLRequest("http://localhost:3000/tests/"+market_id);
jrwloader  = new URLLoader();
params = new URLVariables();
req.data = strXml.toString();                               
req.method = URLRequestMethod.POST;                                                         
req.requestHeaders.push(new URLRequestHeader("X-HTTP-Method-Override", URLRequestMethod.PUT));                                                          
jrwloader.load(req);

私のレールアプリでは、これを取得しました:

Started PUT "/markets/2" for 10.10.10.10 at 2012-09-08 18:37:24 +0000
Processing by TestController#update as */*
  Parameters: {"test_id:2, market_name:test"=>nil, "id"=>"2"}
WARNING: Can't verify CSRF token authenticity
  Market Load (0.2ms)  SELECT `tests`.* FROM `test` WHERE `test`.`test_id` = 2 LIMIT 1
   (0.1ms)  BEGIN
   (0.1ms)  COMMIT
Redirected to http://localhost:3000/tests/2
Completed 302 Found in 3ms (ActiveRecord: 0.4ms)

私は答えに近いと思いますが、新しいデータをデータベースに設定できません。

4

2 に答える 2

0

私が解決します!主な問題は、リクエストに 1 行追加することだけでした。だから最後に私はこのようなものを得ました:

req = new URLRequest("http://localhost:3000/tests/"+market_id);
jrwloader  = new URLLoader();
params = new URLVariables();
req.data = strXml.toString();                               
req.method = URLRequestMethod.POST;                                                         
req.requestHeaders.push(new URLRequestHeader("X-HTTP-Method-Override", URLRequestMethod.PUT));                                                          
**req.requestHeaders.push(new URLRequestHeader("Content-type", 'application/xml'));**         jrwloader.load(req);

皆さんありがとう!

于 2012-09-12T00:16:10.363 に答える
0

CSRF トークンをリクエストに追加する必要があります。

このトピックの詳細は次のとおりです: http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf

于 2012-09-08T22:12:03.770 に答える