【发布时间】:2023-04-05 01:02:01
【问题描述】:
我试图通过 ajax jQuery 将一些数据发送到带有 POST 的 php 文件,但我不断收到 POST 405 Method Not Allowed 错误,任何解决此问题的想法都将不胜感激,这是进行调用的函数
function manageData(key) {
var name = $("#countryName");
var abbrev = $("#countryAbbrev");
var desc = $("#countryDesc");
if (isNotEmpty(name) && isNotEmpty(abbrev) && isNotEmpty(desc)) {
$.ajax({
url: 'http://127.0.0.1:5500/ajax.php',
method: 'POST',
dataType: 'text',
data: {
key: key,
name: name.val(),
abbrev: abbrev.val(),
desc: desc.val()
},
success: function (response) {
alert(response);
}
});
}
}
这里是 ajax.php 文件代码
<?php
if (isset($_POST['key'])) {
$conn = new mysqli(host:'localhost', username:'root', passwd:'root',
dbname:'mysqldatamanager');
$name = $conn->real_escape_string($_POST['name']);
$abbrev = $conn->real_escape_string($_POST['abbrev']);
$desc = $conn->real_escape_string($_POST['desc']);
if($_POST['key'] == 'addNew') {
$sql = $conn->query(query:"SELECT id FROM country WHERE
countryName = '$name'");
if ($sql->num_rows > 0) {
exit("Country already exists!");
} else {
$conn->query("INSERT INTO country (countryName,
countryAbbrev, countryDesc) VALUES ('$name', '$abbrev',
'$desc')");
exit("Country has been added succesfully!");
}
}
}
?>
【问题讨论】:
-
如果你在本地工作?请评论您的项目文件夹位置。
-
PHP 不会返回 405 错误。您可能需要查看您的服务器配置以允许 POST 请求。 (另外:确保获取 405 的是 POST 请求,而不是预检 OPTIONS 请求)。
-
@Quentin:我如何知道 POST 是收到 405 错误还是预检 OPTIONS 请求?如果是后者,我需要做什么才能摆脱错误?我是 jQuery AJAX 的新手,面临同样的问题。请帮忙。
-
浏览器开发者工具的网络标签会显示动词和响应代码。
标签: php jquery ajax http-status-code-405