Доступ к данным $ _POST, отправленным Jquery / AJAX - PullRequest
2 голосов
/ 17 мая 2011

Я использую эту функцию:

function end_incident() {
    var dataString = 'name=Daniel&phone=01234123456';
    $.ajax({
        type: "POST",
        url: "http://www.example.co.uk/erc/end_incident.php",
        data: dataString,
        success: function(msg){ 
            alert('Success!'+dataString);
        }
    });
};

для отправки информации на end_incident.php, но я не могу получить доступ к переменным $_POST.Я пытался сделать это так:

$name = $_POST['name'];
$phone = $_POST['phone'];

Я что-то не так делаю?

Спасибо за любую помощь

Ответы [ 2 ]

13 голосов
/ 17 мая 2011

Попробуйте отправить данные как объект:

function end_incident() {
    $.ajax({
       type: "POST",
       url: "http://www.example.co.uk/erc/end_incident.php",
       data: { name: "Daniel", phone: "01234123456" },
       success: function(msg){ 
            alert('Success!');
       }
    });
};
3 голосов
/ 17 мая 2011

Убедитесь, что URL вашего запроса в том же источнике вашего сайта, если это не так, у вас есть проблема межсайтового скриптинга. Только способ обойти это:

  • Получение «более высокого» доступа / привилегий в браузере, то есть создание дополнения / расширения или использование Greasemonkey
  • Используйте прокси через собственный сайт, чтобы получить запрос на файл:

    var getURL = "http://www.example.co.uk/erc/end_incident.php";
    $.ajax({
       type: "POST",
       url: "/get_url.php?url=" + encodeURIComponent(getURL),
       data: { name: "Daniel", phone: "01234123456" },
       success: function(msg){ 
           alert('Success!');
       }
    });
    

Я рекомендую вам добавить функцию error к вашему ajax. Удивительно, сколько людей просто сосредотачиваются на success и никогда не обрабатывают ошибку!

error: function()
{
   console.log(arguments);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...