簡體   English   中英

PHP / CodeIgniter沒有來自jQuery Ajax調用的POST響應

[英]PHP/CodeIgniter no POST response from jQuery Ajax call

我有一個jQuery Ajax Post請求,該請求進入Code Igniter函數,此后CodeIgniter發送一封包含該Post請求詳細信息的電子郵件。

JavaScript代碼:

$.ajax({
    type: 'POST',
    url: 'http://localhost/admin/index.php/callback',
    data: { 'name': inputName, 'phone': inputNumber},
    success: function() {
        onSuccess();
},
async:true
});

PHP / CodeIgniter函數

public function email() {
    if (!isset($_POST)) {
         //exit('No direct script access allowed');
    } else {
    //Send Email
    }
}

問題請參閱編輯

CodeIgniter不會發送對該呼叫的響應。

收到Post請求並在電子郵件部分正常工作時運行,我收到包含Post請求中發送的詳細信息但onSuccess()的電子郵件。 永遠不會調用(並且不會通過Chromes網絡觀察器記錄任何響應,它只會顯示“待定”)

這一切都在我的本地機器上運行了

該請求是從主index.php完成的,但CodeIgniter僅安裝在/ admin目錄中

謝謝你的時間!

編輯:將ajax網址更改為帶有localhost的完整網址,因為這是在CI $ config中設置的方式

編輯:CI確實發送了響應,這需要2-3分鍾,這也是發送電子郵件所花費的時間,那時我無法訪問該站點的任何其他頁面。 我開始認為這可能與我的本地計算機/ Apache安裝有關。

var base_url = '<?php echo base_url();?>';
$.ajax({
    type: "POST",
    url: base_url+"index.php/my_class/email",
    data: { name: inputName, phone: inputNumber},
    success: function() {
        // success actions....
    }
});

控制者

class My_class extends CI_Controller{
    public function email() {
        $name = $this->input->post('name');
        if (!$name) {
        //exit('No direct script access allowed');
        } else {
        //Send Email
        }
    }

}

嘗試以下代碼:

var url = '<?php echo base_url();?>index.php/my_class/email';

$.post(url, {
    data: { name: inputName, phone: inputNumber},
},
function(data_returned){
    alert(data_returned);
});

您應該empty而不是!isset ,因為isset($_POST)始終為TRUE ,我這樣認為:

public function email() {
    if (empty($_POST)) {
         //exit('No direct script access allowed');
    } else {
    //Send Email
    }
}

問題出在我的sendmail設置和PHP掛起/重試,直到得到sendmail的響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM