0

Code Igniter 関数に入る jQuery Ajax Post リクエストがあります。その後、CodeIgniter は投稿リクエストの詳細を含むメールを送信します。

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 は呼び出しに対して応答を送信しません。

投稿リクエストが受信され、電子メール部分が正常に機能するため実行されます。投稿リクエストで送信された詳細を含む電子メールを受信しますが、onSuccess(); 呼び出されることはありません(Chromesネットワークウォッチャーを介して応答は記録されず、「保留中」と表示されます)

これはすべて私のローカルマシンから実行されました

このリクエストはメインの index.php から行われますが、CodeIgniter は /admin ディレクトリにのみインストールされます

御時間ありがとうございます!

編集: CI $config で設定されているように、ajax URL を localhost の完全な URL に変更しました

編集: CI は応答を送信します。2 ~ 3 分かかります。これは、メールの送信にかかる時間でもあります。その間、サイトの他のページにアクセスできません。これは私のローカル マシン/Apache のセットアップに問題があるのではないかと考え始めています。

4

4 に答える 4

1
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
        }
    }

}
于 2013-01-16T16:29:56.703 に答える
0

次のコードを試してください。

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

$.post(url, {
    data: { name: inputName, phone: inputNumber},
},
function(data_returned){
    alert(data_returned);
});
于 2013-01-16T16:48:29.490 に答える
0

問題は、sendmail の設定と、sendmail からの応答が得られるまで PHP のハング/再試行にありました。

于 2013-03-04T12:52:13.240 に答える
0

は常にであるため、emptyの代わりに使用する必要があります。!issetisset($_POST)TRUE

public function email() {
    if (empty($_POST)) {
         //exit('No direct script access allowed');
    } else {
    //Send Email
    }
}
于 2013-01-16T17:03:06.370 に答える