私はPlayでcreate
アクションを持っています! HTTPステータスコードCreated
を返し、クライアントを作成されたオブジェクトの場所にリダイレクトする必要があります。HTTPステータスがPlayで「作成済み」に戻ります。フレームワーク
public class SomeController extends Controller {
public static void create() {
Something something = new Something();
something.save();
response.status = StatusCode.CREATED; // Doesn't work!
show(something.id);
}
public static void show(long id) {
render(Something.findById(id));
}
}
method chaining in the Play! framework documentationも参照してください。
上記のコードは201 Created
の代わりに302 Found
というステータスコードを返します。 Playに正しいステータス(とLocation
ヘッダー)が返されるようにするにはどうすればよいですか?
'201 Created'は、溶液2と起こりません' Location'ヘッダと一緒に送付されなければならないあなたが解決策1を説明してもらえ、私は理解していませんそれ? – deamon
解決策1が良くありません。基本的には、リクエストを作成した後にshow()をリクエストすると、フローはサーバー側ではなくクライアント側(つまりjavascript)に決定されます。 – Codemwnci
私はPlay(1.2.3)のソースコードとRedirectオブジェクトをチェックしましたが、コードはデフォルトで302になっています。別のコードを提供するコンストラクタがありますが、このコンストラクタはフレームワーク。 – Codemwnci