【问题标题】:AJAX Post Fatal Error Column Cannot Be NullAJAX 发布致命错误列不能为空
【发布时间】:2019-12-05 20:25:30
【问题描述】:

我收到一个致命错误,“列不能为空。”

index.php

<head>
  <script>
    let xhr = window.XMLHttpRequest
      ? new XMLHttpRequest()
      : new ActiveXObject('Microsoft.XMLHTTP')
    xhr.open('POST', 'ajax.php', true)
    xhr.setRequestHeader('content-type', 'applications/x-www-form-urlencoded')
    xhr.send('sld=testing&tld=com&registrar=namecheap')
  </script>
</head>

ajax.php

var_dump($_POST);    // without these var_dumps
var_dump($_REQUEST); // i receive a 500 error (internal server error)

if ($_SERVER["REQUEST_METHOD"] === "POST"){
  include "includes/connect_to_database.php";
  $pdo = $connection->prepare("INSERT INTO domains (sld, tld, registrar) VALUES (:sld, :tld, :registrar)");
  $pdo->execute(array(
    ":sld" => $_REQUEST["sld"],
    ":tld" => $_REQUEST["tld"],
    ":registrar" => $_REQUEST["registrar"]
  ));
  $connection = null;
}

fwiw:connect_to_database.php

try {
  $connection = new PDO("mysql:host=$dbhost; dbname=$dbname; charset=utf8", $dbuser, $dbpass);
  $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully!";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage() . ".";
}

MySQL 表架构

  • 它说罪魁祸首是sld,所以好像没有任何数据被向前传递。
  • responseText 也是空白。
  • 我也使用$_POST 得到完全相同的错误。
  • var_dump($_REQUEST)var_dump($_POST) 在响应中都返回空数组。
  • 我尝试在帖子字符串上使用encodeURIComponent,但没有成功。
  • 值得注意的是,如果我删除 var_dump 语句,我会收到 500 错误(内部服务器错误)。

可能是我没有发送所有必要的标头吗?

我到底做错了什么让数据不能被转发?

【问题讨论】:

  • 你不应该使用$_POST而不是$_REQUEST吗?
  • @Jaquarh 我试过$_POST,完全相同的错误。我实际上刚刚完成了更新我的问题
  • var_dump($_POST) 给你什么?你也不能使用JQuery吗? $.post()
  • @Jaquarh 我也不知道。我在这里联系了一位朋友,他的程序员比我好得多,所以也许地狱能够发现问题
  • @Jaquarh 已解决。检查答案。你会想把你的头撞到墙上大声笑

标签: javascript php mysql ajax post


【解决方案1】:

您使用了错误的请求标头。 改成

xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')

而不是

applications/x-www-form-urlencoded 注意这里的's'。

我想你可能不需要 $_POST$_REQUEST 同一时间。因此,您可以删除其中之一。

【讨论】:

  • 太老兄了。我已经在这里待了几个小时了,哈哈
  • 享受这一天:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 2016-07-24
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多