【发布时间】:2019-03-28 14:01:52
【问题描述】:
我创建了一个表单,提交时需要转到控制器函数。
在我提交表单的那一刻,我不断收到
禁止
您无权访问此服务器上的 /client_area/shop/payment-gateway。
此外,在尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误。
我以前做过表格,但这是第一次发生在我身上,我被难住了。
我的表格
<div class="payment-form">
<form action="{{ route('payment.gateway') }}" method="POST">
@csrf
<input type="hidden" name="return_url" value="{{ route('payment.success') }}">
<input type="hidden" name="cancel_url" value="{{ route('payment.cancel') }}">
<input type="hidden" name="m_payment_id" value="{{ $invoice_number }}">
<input type="hidden" name="amount" class="completePrice" value="">
<input type="hidden" name="item_name" value="Test Item">
<input type="hidden" name="item_description" value="A test product">
<input type="hidden" name="delivery_collection" class="delivery_collection" value="">
<input type="hidden" name="delivery_fee" class="delivery_fee" value="{{ $delivery }}">
<input type="hidden" name="delivery_address" class="delivery_address" value="{{ $address }}">
<button type="submit" class="btn btn-success float-right confirm-order">
Confirm Order
</button>
</form>
</div>
我的路线
Route::group(['middleware' => ['web', 'auth']], function(){
Route::get('/account/dashboard', 'UsersController@accountDashboard')->name('account.dashboard');
Route::get('/account/details', 'UsersController@personalDetails')->name('account.details');
Route::get('/account/track-orders', 'UsersController@trackOrders')->name('account.track-orders');
Route::get('/account/invoices', 'UsersController@invoices')->name('account.invoices');
Route::get('/account/address', 'UsersController@addressesIndex')->name('account.addresses.index');
Route::get('/account/sort-orders', 'UsersController@sortOrders')->name('account.sort-orders');
Route::get('/account/order-details/{invoice_number}', 'UsersController@orderDetails')->name('account.order-details');
Route::get('/account/invoice-pdf/{id}', 'UsersController@invoicesPdf')->name('account.invoices.pdf');
Route::get('/account/create-address', 'UsersController@createAddress')->name('account.create.address');
Route::get('/account/edit-address/{id}', 'UsersController@editAddress')->name('account.edit.address');
Route::get('/delivery-confirmation', 'PublicController@deliveryConfirmation')->name('cart.deliveryConfirmation');
Route::get('/account/edit-delivery-address/{id}', 'UsersController@editDeliveryAddress')->name('account.edit.delivery.address');
Route::get('/payment-success', 'PublicController@successPayment')->name('payment.success');
Route::get('/payment-cancel', 'PublicController@cancelPayment')->name('payment.cancel');
Route::post('/account/personal-details', 'UsersController@postPersonalDetails')->name('post.personal-details');
Route::post('/account/business-details', 'UsersController@postBusinessDetails')->name('post.business-details');
Route::post('/account/addresses-radio/{id}', 'UsersController@postAddressesRadio')->name('account.post.addresses.radio');
Route::post('/account/create-address', 'UsersController@postAddress')->name('account.post.address');
Route::post('/account/edit-address/{id}', 'UsersController@updateAddress')->name('account.update.address');
Route::post('/payment-gateway', 'PublicController@paymentGateway')->name('payment.gateway');
Route::delete('/account/delete-delivery-address/{id}', 'UsersController@deleteDeliveryAddress')->name('account.delete.delivery.address');
});
我只做了一个dd() 以确保我点击了正确的功能
public function paymentGateway()
{
dd('this is a payment gateway');
}
我的身份验证中间件
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}
这是我在浏览网络选项卡时看到的。因为图片很多,所以我认为最好将其作为链接,然后将图片粘贴到此处。
【问题讨论】:
-
您的项目配置正确吗?此项目中的其他表单是否按预期工作?
-
是的,我所有的其他表格都可以正常工作。这就是我如此困惑的原因。