Не удается получить доступ к моим значениям Post, отправленным через jQuery ajax - PullRequest
2 голосов
/ 02 мая 2011

РЕДАКТИРОВАТЬ : Удаление файла index.php с помощью .htaccess создает только что обнаруженный мной пробем.Теперь я приступаю к ее решению.

РЕДАКТИРОВАТЬ : Проблема решена.Javascript был неправильным: url: "/login/" Требовалась косая черта.

ORIGINAL : На своем домашнем экране я создал форму:

<div id="login"><?php 
echo form_open('login');
echo form_input('username', 'Username', 'id="username"');
echo form_submit('submit', 'Login', 'id="login_submit"');
echo form_close();
?></div>

С некоторымиjavascript (спасибо Nettuts) Я попытался реализовать некоторый ajax:

$('#login_submit').click(function() {

var form_data = {
    username: $('#username').val(),
    password: $('#password').val()      
};

$.ajax({
    url: "/login",
    type: 'POST',
    data: form_data,
    success: function(msg) {
        $('#login').html(msg);
    }
});

return false;
});

Как видите, он отправляет значения формы в контроллер входа в систему.

class Login extends CI_Controller {

function index()
{
    if($this->input->is_ajax_request())
    {
        echo '<h2>Login succeeded with ajax</h2>';
    }
    else
    {
        echo '<p>But your ajax failed miserably</p>';
    }
}

}

проблема в том, что это не работает. Функция $this->input->is_ajax_request() выводит FALSE.Игнорируя это, все остальные данные поста отсутствуют. Ничего не проходит.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Я думаю, что ваша проблема может заключаться в том, что вы не отправляете правильный скрипт. Ваш URL / логин не похож на URL Codeigniter (http://domain.com/index.php/login или http://domain.com/my_app/index.php/login).

Попробуйте изменить URL-адрес либо на полный URL-адрес контроллера, либо на правильный абсолютный путь. Либо:

url: "http://yourdomain.com/index.php/login",

или

url: "/my_app/index.php/login",

Если вы не переписали URL-адреса, то / login, вероятно, не будет связываться с правильным сценарием.

1 голос
/ 16 января 2018

Это установило меня в правильном направлении, когда я использовал PHP и Jquery AJAX для отправки значений поста. Я использую .htaccess, чтобы переписать URL, чтобы удалить расширение .php. Значения сообщений не передаются в мой файл sendmail.php. Я решил это, изменив URL почтового запроса с

$.ajax({
                            url:'sendemail.php',
                            method:'post',
                            data:{
                                fname:fname,
                            },
                            success:function (e) {
                                alert(e);
                            }
                        });

до

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