doupingmao1903 2017-07-17 11:08
浏览 42
已采纳

Laravel执行GET而不是POST请求

I have form to POST data to Controller and update database

The form in my orders.blade.php

<form method="post" enctype="multipart/form-data">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <select name="selectdb" required>
        <option value="" disabled selected>Select Delivery Boy</option>
        @foreach($delvery_boys as $delvery_boy)
          <option name="selectdb" data-oid="{{$order->id}}" value="{{$delvery_boy->id}}">{{$delvery_boy->name}}</option>
        @endforeach
    </select>
    <button type="submit" class="assigndb-btn btn-floating waves-effect waves-light">
        <i class="material-icons">send</i>
    </button>
</form>

I am doing an ajax POST request of form data to controller in my orders.blade.php

$(document).one("click", ".assigndb-btn", function () {

    $('form').submit(function(event) {
        event.preventDefault();

        var order_id = $(this).find(":selected").data('oid');
        var delivery_boy_id = $(this).find(":selected").val();
        var delivery_boy_name = $(this).find(":selected").text();

        $.ajax({
            url: '{{ url('/manager/assign_orders') }}',
            type: 'POST', 
            data: {"order_id":order_id,"delivery_boy_id":delivery_boy_id},
            success: function(data) {
                console.log(data);
            },
            error: function(error) {
                console.log(error);
            }
        });

    });

});

And in my OrdersController.php i have the logic to updated the posted data

public function assignDeliveryBoy(Request $request)
{
    $assign_delivery_boy = Order::where('id', $request->order_id)->update(['delivery_boy_id' => $request->delivery_boy_id]);

    $data = [
        'success' => true,
        'message' => 'Order has been asigned'
    ];

    return response()->json($data);
}

My Route is

Route::group(['prefix' => 'manager', 'middleware' => ['auth','roles'], 'roles' => 'manager'], function() {
    Route::post('/assign_orders', 'OrdersController@assignDeliveryBoy')->name('assignOrder');
});

When i submit the form it suppose to hit the assign_order route and update the database

But in my console i am getting the html code of the page from where i submit the form basically it is executing GET instead of POST

As i checked in browser network whent the response is

Request URL:http://localhost:8000/manager/orders //but i am posting to http://localhost:8000/manager/assign_orders
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8000
Referrer Policy:no-referrer-when-downgrade

i really don't understand what is wrong

thank you

  • 写回答

3条回答 默认 最新

  • douxunwei7083 2017-07-17 11:37
    关注

    Try this code.

    $.ajax({
        url: "{{ url('/manager/assign_orders') }}",
        type: 'POST', 
        data:{
             "order_id":order_id,
             "delivery_boy_id":delivery_boy_id,
             '_token':'{{ csrf_token() }}'
        },
        success: function(data) {
            console.log(data);
        },
        error: function(error) {
            console.log(error);
        }
    });
    

    Let me know if it works.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的