我的情况是这样的:
我的 Blade Laravel View 是这样的:
{!! Form::open(['route' => 'shop.payment']) !!}
<input type="hidden" name="result_type">
<input type="hidden" name="result_data"">
...
<input type="radio" name="payment_method" value="transfer">
....
<checkout-view></checkout-view>
{!! Form::close() !!}
在 Laravel View Blade 中存在结账 View 的 Vue 组件
组件如下:
<script>
export default{
template:'<button @click="checkout" class="btn btn-danger pull-right" type="submit">Checkout</button>',
methods: {
checkout(e){
if(window.Laravel.hasOwnProperty('auth')) {
$('#payment-form').attr('action', '/shop/payment/checkout')
return true;
}
else {
$('#payment-form').attr('action', '/shop/detail')
$("#payment-form").attr('method', 'get')
return true
}
}
},
}
</script>
我的 Laravel 路线如下:
Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
Route::get('detail', function(){
return view('shop.detail');
});
});
如果没有身份验证,它将运行else
,网址如下:
我想删除参数,所以网址如下:
我尝试更改为post
我改成这样:
$('#payment-form').attr('action', '/shop/detail')
$("#payment-form").attr('method', 'post')
return true
和
Route::post('detail', function(){
return view('shop.detail');
});
但它不起作用,存在错误:
POST http://myshop.dev/shop/detail 405 (Method Not Allowed)
解决我的问题的正确解决方案是什么?
最佳答案
您可以使用 Input
和 get
方法来做到这一点:
查看
{!! Form::open(['route' => 'shop.payment','method' => 'GET']) !!}
<input type="hidden" name="result_type">
<input type="hidden" name="result_data"">
...
<input type="radio" name="payment_method" value="transfer">
....
<checkout-view></checkout-view>
{!! Form::close() !!}
路线
Route::get('/test/route', 'TestController@yourFunction');
Controller
public function yourFunction(){
$result_type = Input::get('result_type');
$result_data = Input::get('result_date');
......
}
希望你能理解。
关于javascript - 如何使用get发送数据而不在url中显示参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066890/