あなたの望む通りではありません。その後のPOSTコールでJSONデータを文字列として取得する必要があります。 アイデアは、フォーム要素を即座に作成し、それを使って後続のPOST呼び出しを行うことです。実際のユースケースと値 - キーでコントローラのコードを交換する必要がありますjavascriptのコード
$.post("/test1/frm", {param1 : "param"}, function(d){
if(d.success) {
// subsequent POST call on success use commented code in case subsequent request is XHR
//$.post(d.url, d.response_data, function(dd){/*callback if any*/});
var frm = $("<form method='POST'>").attr("action", d.url).append($("<input name='data'>").attr("value", JSON.stringify(d.response_data)));
frm.submit();
}
});
コントローラコード
post :frm do
logger.debug params.inspect
content_type :json
{:success => true, :url => "/test1/frm_post", :response_data => {:a => :b}}.to_json
end
post :frm_post do
logger.debug params.inspect
"success"
end
注
。
JSONであなたの復帰は何ですか?表示されるHTML、ロードするコンテンツのURL? – JohnColvin
@JohnColvinファイルが正常にアップロードされたかどうか、ファイルの名前が既に使用されているかどうかを返信しています。 – V9801
うん、それはかなり複雑です。なぜPOSTは関与する必要がありますか? JSONでリダイレクトするURLを送り返し、javascriptでリダイレクトすることもできます。 – JohnColvin