HTPP-запрос Ajax преобразован в Laravel для внешнего API - PullRequest
0 голосов
/ 27 января 2020

Я попытаюсь отправить массив данных в другой домен через API, который будет создан на контроллере в laravel проекте

Моя функция

public function test_prod_insert()
    {
       $usrl= url('/public/wheel_images/rohana_imgs');
        $users = DB::table('products')->select('id','title','sku','image1')->skip(0)->take(2)->get();
        echo"<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
        <script type='text/javascript' src='https://trk.mtrl.me/tracking.js?token=**********'></script>";

        foreach($users as $data){
    echo"<script>
        var model = {
  'time': 1518004715732,
  'token': '***************',
  'platform': 'laravel',
  'pluginVersion': '1.1.0',
  'params': {
    'categories': [
      '2'
    ],
    'id': '<?= $data->id ?>',
    'sku': '<?= $data->sku ?>',
    'imageUrl': '<?= $usrl ?>/<?= $data->image1 ?>',
    'name': '<?= $data->title ?>',
    'price': '',
    'url': '',
    'options': [

    ]
  }
};

$.ajax({
    type: 'POST',
    data: JSON.stringify(model),
    url: 'https://trk.mtrl.me/product',
    contentType: 'application/json'
}).done(function(res) {       
    console.log('res', res);
    // Do something with the result :)
});
</script>";
}
    }

Теперь я преобразован в Laravel используй Guzzle, но как мне не удалось отправить эти данные в laravel показать ошибку 400

на уровне

 public function test_prod_insert()
        {
    echo"<script type='text/javascript' src='https://trk.mtrl.me/tracking.js?token=*********'></script>";
            $client = new Client();
            $res = $client->request('POST', 'https://trk.mtrl.me/product', [
      'form_params' => [
      'time'=> 1518004715732,
      'token'=> '*********',
      'platform'=> 'laravel',
      'pluginVersion'=> '1.1.0',
                ]
            ]);
            echo $res->getStatusCode();
            // 200
            echo $res->getHeader('content-type');
            // 'application/json; charset=utf8'
            echo $res->getBody();
            // {"type":"User"...'
    }

как мне отправить id, sku, imgeurl ... в laravel пожалуйста помогите я новичок в API и Lar

1 Ответ

0 голосов
/ 03 февраля 2020

просто удалите скрипт и отправьте данные в тело

  $client = new Client();
  $param=[
    "id"=> "91",
    "sku"=> "CM01-R",
    "imageUrl"=> "http://shop-tavan.customerboard.co/wp-content/uploads/2018/02/91.jpg",
    "name"=> "Rare unique blue shirt",
    "price"=> 23.65,
    "url"=> "http://shop-tavan.customerboard.co/product/rare-unique-blue-shirt/"
       ];
 $time = Carbon::now()->timestamp;
          $body=[
                "time"=>$time,
                "token"=> "***********",
                "platform"=>"Laravel",
                "pluginVersion"=> "1.1.0",
                "params"=>$param
              ];

$result=$client->request('POST', 'https://trk.mtrl.me/product', ['body'=>json_encode($body)]);
 echo $result->getStatusCode();

я закодирую json часть тела отправки данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...