[输入按钮/具有GET且指定了POST的锚定链接提交表单] >> [

问题描述 投票:2回答:2
我正在将程序PHP应用程序转换为RESTful Laravel / jQuery应用程序。我进行了一些广泛的研究,但是所有建议都失败了,并在下面列出。

在旧版本中,通过使用?Add作为GET变量来获取页面URL,从而创建了一条新记录:

<div class="dropdown"> <button id="BtnID">File</button> <div class="dropdown-content"> <a href="./?Add">Add New</a> <a href="...">More menu items</a> </div> </div>

根据Laravel标准,我试图将请求发布到页面,所以我将菜单更改为:

<div class="dropdown"> <button id="BtnID">File</button> <div class="dropdown-content"> <form id="AddNew"> <!--<a id="Add" href="#">Add New</a>--> <input type='button' id='Add' value='Add New' /><!--Suggested change - also not working--> </form> <a href="...">More menu items</a> </div> </div>

jQuery:

$('#Add').on('click',function(e) { e.preventDefault; if(confirm('some text')) $('#AddNew').submit(); return false; }); $('#AddNew').append(CSRF); $('#AddNew').attr('action','./'); $('#AddNew').attr('method','post');

有人可以帮我弄清楚为什么此表单拒绝POST请求吗?出现确认消息,然后导航到正确的页面,但是应用程序对此发出了GET请求?我注意到CSRF令牌输入未显示在URL中,就像我期望的GET请求一样。

编辑

根据要求,以下是与此页面相关的路线:// Route::get('/SubDirectory/ThisPage/','ThisController@index'); Usually forwards to first page, but commented out for testing this Route::get('/SubDirectory/ThisPage/{PageNr}', 'ThisController@edit'); Route::post('/SubDirectory/ThisPage/', 'ThisController@add'); Route::delete('/SubDirectory/ThisPage/{ID}', 'ThisController@destroy'); Route::patch('/SubDirectory/ThisPage/{ID}', 'ThisController@update');
我正在将程序PHP应用程序转换为RESTful Laravel / jQuery应用程序。我进行了一些广泛的研究,但是所有建议都失败了,并在下面列出。在旧版本中...
php jquery laravel forms anchor
2个回答
0
投票
HTML表单是使用输入或具有提交类型的按钮来提交的。您不应该使用链接来提交表单,但是,如果您如此热衷于提交带有链接的表单,则

可以


0
投票
我认为您缺少引起问题的CSRF令牌。工作示例在这里
© www.soinside.com 2019 - 2024. All rights reserved.