我正在通过Ajax从提交数据,它需要向端点发出curl请求。我没有收到任何错误,但是当我检查端点中的数据时,它不存在。如果我只使用普通的html提交表单,则它可以工作。因此,我想像的我的CURL代码有些不正确。
<?php
$response = [];
$message = '';
$data = [
'first_name' => $_POST['first_name'],
'last_name' => $_POST['last_name'],
'email' => $_POST['email'],
];
$options = [
CURLOPT_URL => 'https://someEndpoint.com?encoding=UTF-8',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data,
CURLOPT_RETURNTRANSFER => 1
];
$curl = curl_init();
curl_setopt_array($curl, $options);
$results = curl_exec($curl);
curl_close($curl);
$response['success'] = true;
$response['message'] = 'Thank you, your request has been submitted.';
echo json_encode($response);
答案 0 :(得分:1)
您当前正在将帖子字段作为数组传递。但是,cURL希望它以以下格式作为字符串传递:
first_name=foo&last_name=bar&...
就像查询字符串一样。
我们可以使用http_build_query()将数组转换为以上格式:
CURLOPT_POSTFIELDS => http_build_query($data),