如何将所有表单数据函数传递给第三方URL。假设我的第三个网址是
`http:\www.abletoaccess.comformrequest`
出于安全原因,我不想form action
方法访问此URL,或者我不想发布直接表单数据。我希望当我提交表单时,所有数据都出现在我的函数中,并重定向到带有发布数据的第三方 URL,并添加了更多参数。
任何帮助将不胜感激!!!
您可以处理控制器的请求,然后显示视图并将其自动提交到外部 URL。
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">
Page is loading...
</div>
<div class="panel-body">
{!! Form::open(['url' => $externalUrl, 'method' => 'POST', 'class' => 'form-horizontal', 'id' => 'my-form']) !!}
@foreach ($fields as $key => $value)
{{ Form::hidden($key, $value) }}
@endforeach
{{ Form::hidden('signature', $signature) }}
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>
<script>
document.getElementById('my-form').submit();
</script>
尝试以下代码:
<form method="post" action={{ action('Controller@method') }}>
<input type="submit" value="add">
</form>
在控制器文件中编写以下代码:
public function method(Request $request)
{
Redirect::away('external url')->withInputs(Input::all());
}
Laravel 5:如何将数据重定向到外部资源表单控制器
首先,这似乎不是Laravel的具体问题。
其次,您需要检查 PHP 中的 CURL 函数。
PHP卷曲
如果可以,请安装有助于这些事情的Guzzle客户端。
您可以将客户端传递给控制器,并对另一个 URL 执行 post 请求,如下所示:
public function someMethod(GuzzleHttpClient $client)
{
$client->post('http:\www.abletoaccess.comformrequest', [
'form_params' => [
'param1' => 'something',
...
]
]);
}