получение неопределенного при отправке метода http post

#angularjs

Вопрос:

Я передаю свою пользовательскую информацию http angularjs. внутренний код-PHP, так как я новичок, я много ищу по этой проблеме. и перепробовал много методов с 2-х дней, но я не мог найти причину, и как это исправить?. это может быть просто, но я не смог найти.

1.Я отправляю свой запрос http post в AngularJS, я был отлажен, значение, которое я отправлю, будет

Значение отладки выглядит следующим образом: serializedParams:»send_id=78amp;send_name=Сомнительноamp;send_phone=4528amp;send_status=Из-за»

url: «вставить.php?send_id=78amp;send_name=Сомнительноamp;send_phone=4528amp;send_status=Из-за» результат: не определен

Я думаю, что URL — адрес правильный. но результат не определен

 var app = angular.module("myapp", []);
app.controller("booking", function($scope, $http) {
  $scope.paidops = ["Paid", "Due"];
  $scope.value = "ADD";
  $scope.insertvalues = function() {
    alert($scope.id   ' , '  
      $scope.name   ' ,'   $scope.phone  
      ' , '   $scope.status);
    alert($scope.name);
    var Indata = {
      'send_id': $scope.id,
      'send_name': $scope.name,
      'send_phone': $scope.phone,
      'send_status': $scope.status
    };
    $http({
      method: 'POST',
      url: 'insert.php',
      params: Indata,
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    }).then(function(response) {
      alert(JSON.stringify(response));
    }, function(response) {
      alert(response);

    });
  }
});
 

В PHP я получаю данные таким образом:

 
     $connect = mysqli_connect("localhost:3307", "root", "", "ticket_booking");
     if($connect === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
    
    $data = json_decode(file_get_contents("php://input"),true);
    if(count(array($data)) > 0)  
     
     {  
      $id_received = mysqli_real_escape_string($connect, $data->send_id);
     $name_received = mysqli_real_escape_string($connect, $data->send_name);
     $phone_received = mysqli_real_escape_string($connect, $data->send_phone);
     $status_received = mysqli_real_escape_string($connect, $data->send_status);
          $btnname_received = mysqli_real_escape_string($connect, $data->send_btnName);
    if($btnname_received == 'ADD'){
          $query = "INSERT INTO society_tour(id,name, phone, status) VALUES ('$id_received','$name_received', '$phone_received','$status_received')";  
          if(mysqli_query($connect, $query))  
          {  
               echo "Data Inserted...";  
          }  
          else  
          {  
               echo 'Error';  
          }  
         }
     ?>

  


 

Комментарии:

1. нужна часть php, чем справиться с этим. Мы не можем так отвечать. Например, я вижу, что вы делаете сообщение, но передаете значение в строке запроса, вы уверены, что читаете строку запроса на стороне php, а не тело запроса ? (тело запроса должно быть параметрами «данные» в AngularJS из памяти 4-летней давности)

2. @Walfrat Я добавил свой PHP-код. . пожалуйста, посмотрите на это. .

Ответ №1:

Не совсем уверен в части PHP, но, как json_decode и в PHP, можно с уверенностью предположить, что PHP ожидает JSON content-type

Если да, то вот как разместить данные по URL-адресу

 var postUrl = 'insert.php'; // please check whether the url is correct
var dto = {
  'send_id': $scope.id,
  'send_name': $scope.name,
  'send_phone': $scope.phone,
  'send_status': $scope.status
};
$http({
  url: postUrl,
  method: 'POST',
  data: dto,
  headers: {
    "Content-Type": "application/json"
  }
})
//...
 

Комментарии:

1. Спасибо!! Он выдает данные, но данные имеют escape-символ., например {«данные»:» строка(74) «{«send_id»:»45″,»send_name»:»Подхи»,»send_phone»:125,»send_status»:»Оплачено»} В моем PHP данные равны нулю. Я добавил свой полный php-код. Является ли этот escape-символ причиной того, что я не получил данные в PHP?

2. Я не уверен, что JSON.stringify необходим, @Pavi_Web вы пробовали data:dto просто ?

3. Спасибо, что сейчас это работает!! вместо данных: JSON.stringify(dto) только что попробовал данные:dto Спасибо @Naveen ,@Walfrat

4. Обновленный ответ… Давно не пользовался angularjs