Ajax请求发送CURL请求

时间:2019-12-12 11:00:36

标签: php ajax curl

我正在通过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);

1 个答案:

答案 0 :(得分:1)

您当前正在将帖子字段作为数组传递。但是,cURL希望它以以下格式作为字符串传递:

first_name=foo&last_name=bar&...

就像查询字符串一样。

我们可以使用http_build_query()将数组转换为以上格式:

CURLOPT_POSTFIELDS => http_build_query($data),