Отправка запроса POST внутри PHP на внешний API - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь выяснить, как я могу отправить запрос POST во внешний API из файла PHP, в который я также отправляю отправку формы.По сути, когда файл PHP получает POST от моей страницы, он должен отправить имя пользователя и пароль, которые он получил, на внешний API, а затем вернуть этот ответ на мой JavaScript, чтобы я мог прочитать его и использовать эту информацию.Я делаю это, потому что этот запрос должен идти к внешнему API, который я не могу контролировать, поэтому я обычно получаю ошибку Cross-Origin.

Это мой PHP.Он получает запрос POST от моего JavaScript при отправке формы.Мне нужно передать форму в API по адресу www.sample.com/api?hwerywer=funcName

<?php
if (is_ajax()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
    $action = $_POST["action"];
    switch($action) { //Switch case for value of action
    case "test": test_function(); break;
    }
}
}

//Function to check if the request is an AJAX request
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}

function test_function(){
$return = $_POST;


$return["json"] = json_encode($return);
echo json_encode($return);
}
?>

У меня есть эта форма на странице HTML:

<form action="hello.php" class="js-ajax-php-json" method="post" accept-charset="utf-8">
    <input type="text" name="username" value="" placeholder="username" />
    <input type="text" name="password" value="" placeholder="password" />
    <input type="submit" name="submit" value="Submit form"  />
</form>

Когда его отправляют, этот JavaScript запускается:

$(".js-ajax-php-json").submit(function(){
    var data = {
    "action": "test"
    };
    data = $(this).serialize() + "&" + $.param(data);
    $.ajax({
    type: "POST",
    dataType: "json",
    url: "hello.php",
    data: data,
    success: function(data) {
        // manipulate response data
        // $(".the-return").html(
        // "First Value: " + data["username"] + "<br />Second Value: " + data["password"] + "<br />JSON: " + data["json"]
        // );

        alert("Form submitted successfully.\nReturned json: " + data["json"]);
    }
    });
    return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...