ボタンクリックでDELETEリクエストを送信しようとしていますが、jQueryが設定されていて、deleteメソッドのルーティングを使用しているにもかかわらず、GETリクエストエラーCannot GET /app/delete/1
。私はjQueryを正しく実装していますか?このGETリクエストをどうやって防ぐのですか?NodeJS - jQuery DELETEメソッド
ルート:
appRoutes.route('app/delete/:testId')
.delete(function(req, res){
models.Test.destroy({
where: {
userId: req.user.user_id,
testId: req.params.testId
}
}).then(function(){
res.redirect('/app');
});
});
リンク:
<a href="/app/delete/{{test.testId}}" id="test-delete-link">Delete</a>
のjQuery:
<script type="text/javascript">
$(document).ready(function() {
$('#test-delete-link').click(function(){
$.ajax({
type: 'DELETE',
url: '/app/delete/{{test.testId}}'
});
});
});
</script>
こんにちは@voidpigeon、応答のおかげで。あなたの答えはDELETリクエストを作成するのに役立ちましたが、私のリダイレクトが決して引き起こされない理由が不思議です。私はajaxメソッドを使うべきですか? – cphill
@cphill ajaxメソッドを使用する必要があります。リダイレクトが機能しない理由は、ブラウザが表示しているページではなく、ajaxリクエストをリダイレクトしているからです。サーバ上で 'redirect'を呼び出すのではなく、サーバからの応答を得た後にクライアントにリダイレクトします。 – afuous