Я использую API для проверки некоторых данных и могу заставить их cURL API работать из командной строки следующим образом:
curl --get --include 'https://domainnameher.com/?domain=whatever@virtual-email.com' \
-H 'X-Mashape-Key: f123456879' \
-H 'Accept: application/json'
Это возвращает немного JSON - Все хорошо. Когда я пытаюсь преобразовать его в PHP и запустить как скрипт процессора форм, я ничего не получаю от сервиса.
HTML
<form id="testF" action="processor.php" method="POST">
<input type="text" name="Email" id="Email" placeholder="Your Email Address">
<input type="submit" class="redFlat" value="DOWNLOAD">
</form>
JQuery для AJAX
$(function(){
$('#testF').validate({
errorPlacement: function(error, element) {},
submitHandler: function(form) {
var dataString = $(form).serialize();
$.ajax({
type:$('#testF').attr('method'),
url: form.action,
data: dataString,
dataType: 'json',
success: function(data) {
console.log(data);
}
});
return false;
}
});
});
И главный вопрос - процессор PHP. Я беру значение POST из формы и добавляю его в URL ...
<?php
$email = filter_var($_POST["Email"], FILTER_SANITIZE_EMAIL);
$fields = array('domain' => $email);
$url = "https://mailcheck.p.mashape.com/?" . http_build_query($fields, '', "&");
$endpoint = urldecode($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'X-Mashape-Key: f123456879',
'Accept: application/json'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
curl_close ($ch);
echo $server_output;
?>
Я не знаю, почему я не получаю тот же ответ от сценария, который я получаю, когда запускаю команду из терминала. Любой совет очень ценится.