我使用guzzle将数据发送到我的API,并且我得到了例外。这是我的控制器中的代码
public function Connecter(Request $request){
$parametre =$request->all();
$client = new Client();
$r = $client->post('http://myapiurl.com/login',['body'=>$parametre]);
$user = json_decode($r->getBody(),true);
if ($user) {
$sis = $user['user'];
Session::put('id', $sis['id']);
Session::put('nom', $sis['name']);
Session::put('role', $sis['id_roles']);
Session::put('email', $sis['email']);
return redirect()->route('home');
}else{
return redirect()->back();
}
}
当我看到日志时,我找到了这个
[2017-09-11 16:31:25] production.error:guzzlehttp exception clientException:客户端错误响应[url] http://myapiurl.com/login [status code] [status code] 403 [quasenchy Phrase] forbidden perphidden perphidden]in/home/vol2_6/myserver.com/username/htdocs/laravel/vendor/guzzlehttp/guzzle/guzzle/src/exception/requestectectionpection.php:89 堆栈跟踪:
当我做
时dd($r = $client->post('http://myapiurl.com/login',['body'=>$parametre]);
);
我得到403禁止
以防万一对其他人有帮助。几个小时前,我登上了这个问题,因为我在登台网站上从API中遇到了" 403禁止"错误。
这个问题让我整天疯了。事实证明,问题是由于登台站点以前仅限于仅允许某些IP地址引起的。这些已添加到NGINX配置文件中,我对此一无所知。
我现在非常了。
如果您的API域使用CloudFlare,请尝试将"安全级别"设置更改为低或更低。您可以在"防火墙设置"部分下找到它。
但是,请注意,这将使您的网站处于潜在的安全漏洞中。