2016-12-27 59 views
1

我正在HTTP請求的URL,其中,所述數據是變在請求的頭部後,但是當我使用的$this->input->post獲取它在控制器,它顯示空白。在控制器沒有得到angularjs後數據(笨)

Angularjs代碼:

//Code to send email of quiz results 
$scope.processresult=function(){ 
    $http({ 
     method:"POST", 
     url:"http://localhost/quizci/admin/sendresultemail/", 
     data:{ 
      "riskscore":$scope.datascore 
     }, 
    }) 
    .success(function (data) { 

     if (!data.success) { 
     // if not successful, bind errors to error variables 
      $scope.errorName = data.errors.name; 
      $scope.errorSuperhero = data.errors.superheroAlias; 
     } 
     else { 
      // if successful, bind success message to message 
      $scope.message = data.message; 
     } 
    }); 
} 

控制器功能:

function sendresultemail(){ 
     $from_email = "[email protected]"; 
//   $to_email = $this->input->post('email'); 
     $to_email = "[email protected]"; 

     $this->load->model('user_model'); 
     // $result = $this->user_model->get_user_by_id($this->session->userdata($sess_array['id'])); 
     echo "risk score =".$this->input->post('riskscore'); 
     exit; 
     //Load email library 
     $this->load->library('email'); 

     $this->email->from($from_email, 'ERMS'); 
     $this->email->to($to_email); 
     $this->email->subject('Email Test'); 
     $this->email->message($_POST); 

     //Send mail 
     if($this->email->send()){ 
      $this->session->set_flashdata("email_sent","Email sent successfully.");  
     } 
     else { 
      $this->session->set_flashdata("email_sent","Error in sending Email."); 
      $this->load->view('admindash'); 

     } 

    } 

參考以下圖片,在screen1

可以看到在請求有效載荷中的數據,但在響應顯示爲空白screen2

回答

0

您沒有提及標題內容類型。

$scope.processresult=function(){ 
        $http({ 
         method:"POST", 
         url:"http://localhost/quizci/admin/sendresultemail/", 
         headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
         data:{ 
          "riskscore":$scope.datascore 
         }, 
        }) 

在PHP .. ..恩

public function store() 
{ 
    $this->load->database(); 
    $_POST = json_decode(file_get_contents('php://input'), true); 
    $posts = $this->input->post(); 
    $this->db->insert('posts', $posts); 
} 
+0

我試過前面添加標題,但它給「不允許主要人物形象。」 CI中的錯誤,因此我刪除了該錯誤。 – adi

+0

改變標題:{'Content-Type':'application/json'},並且php $ obj = json_decode(file_get_contents('php:// input')); –

0

你不應該被呼應它的價值在CI返回回JSON。

header('Content-Type: application/json'); 
echo json_encode($arr); 

另外,請不要使用成功,因爲它是反過來使用的。

$http({ 
     method:"POST", 
     url:"http://localhost/quizci/admin/sendresultemail/", 
     data:{ 
       "riskscore":$scope.datascore 
     }, 
     }) 
     .then(function (resp) { 
       var response = rest.data; 
       // any code here 
}); 
1

有時Codeigniter無法獲取發佈數據。爲我工作的一個解決辦法是設置$ _ POST使用手動步驟:

$_POST = json_decode(file_get_contents("php://input"), true); 

然後運行$這個 - >輸入 - >後()函數。

希望它可以幫助一些人。