如何将数据从POST请求传递到请求到外部服务?

时间:2019-01-17 18:40:56

标签: javascript php ajax

我对index.php有POST请求:

$(document).ready(function(){
   $("#btn-calc").click(function () {
       let cityValue = $("#delivery_city").val(),
           weightValue = $("#weight").val();

       $.ajax({
           type: "POST",
           url: "index.php",
           data: {
               city: cityValue,
               weight: weightValue
           },
           success: function () {
               console.log("Success")
           },
            error: function () {
                console.log("Fail")
            }
       })
   })
});

它将.delivery_calc数据发送到名为index.php的PHP脚本。在index.php中,我需要实现对外部服务的请求。该请求必须是这样的:

  

exercise.develop.maximaster.ru/service/delivery/?city=Тула&weight=150

也就是说,您可以看到POST请求中的数据。如何将其传递给外部服务请求?预先谢谢你。

P.S。此时index.php如下所示:

<?php
header('Content-Type: text/html; charset=utf-8');
require("read_cache.php");

$content = file_get_contents('cities.html');
$city_array = json_decode($content, true);

$price = file_get_contents('http://exercise.develop.maximaster.ru/service/delivery/');
$priceMsg = json_decode($price, true);
?>

1 个答案:

答案 0 :(得分:1)

要与查询字符串一起准备网址,可以使用名为http_build_query的函数。

您可以通过以下方式使用它:

$queryString = http_build_query([
    'city' => $_POST['city'],
    'weight' => $_POST['weight']
]);
$price = file_get_contents('http://exercise.develop.maximaster.ru/service/delivery/?'.$queryString);