【发布时间】:2018-03-18 05:16:18
【问题描述】:
我在 php 中制作简单的发布详细信息的形式,但在将数据从表单发布到 API 时卡住了,但它显示 405 method not allowed 错误。请检查下面的代码,让我知道其中有什么问题。可能是我犯了一些愚蠢的错误,如果是这样的话,对不起。
<form method="POST" action="#" name="checkout">
First Name <input type="text" name="firstName"/><br/>
Last name <input type="text" name="lastName"/><br/>
Email <input type="text" name="phone"/><br/>
Phone <input type="text" name="gender"/><br/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))
{
$name = $_POST['firstName'];
$lastname = $_POST['lastName'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$url11 = "https://api.rezdy.com/v1/categories/124095/products?apiKey=bb42962c78b34e02b879cc5463cb4648";
$data['customer'] = array(
'firstName'=>$name,
'lastName'=>$lastname,
'email'=>$phone,
'phone'=>$gender
);
echo "<pre>";
$json = json_encode($data);
echo $json;
echo "<br/>";
function senddatat($url,$post)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','charset=UTF-8 '));
$result = curl_exec($ch);
/*echo "<pre>";
var_dump( curl_getinfo($ch) ) . '<br/>';
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
curl_close($ch);*/
return $result;
}
echo " ".senddatat($url11,$json);
}
?>
【问题讨论】:
-
为什么你给你的文本框提供了错误的标签?
Email <input type="text" name="phone"/><br/> Phone <input type="text" name="gender"/><br/> -
405 http 错误代码可能是指 api 本身。你确定 api 背后的执行方法是工作/可调用的吗?