не может POST успешно ajax запрос - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть 2 файла в моем хранилище, и я хочу передать переменную js в индексе. php в php сценарий проверки. php. Структура моего хранилища:

  • индекс / индекс. php
  • pdf / validate. php

Код в индексе. php:

<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
The content of the document......
<script type="text/javascript">

var name = "virginia"
//console.log(name)

$.ajax({
    url: "../pdf/validate.php", 
    method: "post", 
    data: name, 
    success: function(res) {
        console.log(name)
        console.log("pass js variable to php: success")
    }

});  

// open localhost/index.php
// open F12 developer console, you will find 'virginia' was passed to validate.php, because it console-prints "pass js variable to php: success". 

</script>
</body>
</html>

Запрос ajax был успешным проверить. php. Но, переходя к проверке. php, у меня есть:

<?php 
$var1 = $_POST['name']; 
echo($var1); 
?>

Если я открою проверку. php в localhost, я получаю сообщение об ошибке: Примечание: неопределенный индекс: имя.

Почему?

1 Ответ

3 голосов
/ 16 апреля 2020

Запрос ajax был успешно подтвержден. php

Не так успешно.

Вы неправильно отформатировали данные для PHP, чтобы проанализировать их.

Вам необходимо передать объект со свойством name в данные.

data: { name }, 

Вы могли бы сказать, что в настоящее время происходит сбой, если вы проверили res вместо name с вашим console.log.


Если я открою validate. php в localhost, я получаю сообщение об ошибке: Примечание: неопределенный индекс: имя.

Набирая URL в браузере, вы делаете новый GET-запрос, который совершенно не связан с POST запрос, который вы сделали с помощью JavaScript ранее.

Данные POST из первого запроса не существуют во втором запросе.


Если вы хотите, чтобы данные сохранялись между запросами, то вы необходимо сохранить его где-нибудь (например, сеанс или базу данных) и добавить logi c, чтобы различать guish между установкой и извлечением данных (например, отключение запроса POST или GET).

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