php - $_POST 值可用但无法访问
问题描述
我尝试通过 AJAX 提交表单,然后使用这些值。这是表单的标记:
<form id="formDeb" action="controller/processDeb.php" method="POST" enctype="multipart/form-data">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="formGroupName">Angezeigter Name in Cydia/Sileo</label>
<input type="text" class="form-control" id="formGroupName" name="formGroupName"
placeholder="Vorname Nachname oder Kürzel">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="formGroupMail">Deine E-Mail Adresse</label>
<input type="email" class="form-control" id="formGroupMail" name="formGroupMail"
placeholder="Deine E-Mail Adresse">
</div>
</div>
<!-- and more fields -->
</form>
我通过 Ajax 提交表单:
var myFormData = new FormData(this);
var supportedDevices = getSelectedBoxes("devices");
var supportedVersions = getSelectedBoxes("iosversions");
myFormData.append("supportedDevices", supportedDevices);
myFormData.append("supportedVersions", supportedVersions);
$.ajax({
type: method,
url: targetUrl,
data: myFormData,
processData: false,
async: true,
beforeSend: function () {
isSubmitting = true;
$btnSubmit.attr('disabled', 'true');
$btnImg.toggle();
$btnLoader.toggle();
}
})
在 processDeb.php 文件中,我有以下代码:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (is_array($_POST)) {
echo '<pre>' . var_export($_POST, true) . '</pre>';
$name = $_POST['cName'] ?? '';
$mail = $_POST['cMailAddress'] ?? '';
}
应该设置值,但是当我尝试访问$name
或$mail
内容是''
.
的输出var_export
如下:
数组('------WebKitFormBoundaryMBXZo8GpgumN5Etl Content-Disposition:_form-data;_name' => '"formGroupName"
花哨的名字-----WebKitFormBoundaryMBXZo8GpgumN5Etl Content-Disposition: form-data; 名称="formGroupMail"
mail@domain.tld
所以应该可以访问这些值,$_POST['formGroupName']
但这是不可能的。
之所以enctype
设置为,是multipart/form-data
因为还有一些用户上传字段。
解决方案
application/x-www-form-urlencoded; charset=UTF-8
默认情况下,jQuery 将在您发送多部分数据时对错误的 Ajax 请求设置 Content-Type 。
添加
contentType: false
... 到您传递给的选项,$.ajax()
以便 jQuery 不会覆盖 XMLHttpRequest 的默认行为(即从 FormData 对象生成 Content-Type)。
推荐阅读
- android - 当 minifyEnabled 为 true 时,如何将 JSON 字符串转换为自定义对象?
- r - R中的逻辑回归使用泰坦尼克号数据集绘制Bootstrap
- java - DeviceMetrics 报告的分辨率低于实际像素 - Android 11(仅限三星)
- c# - 在 C# 中从 JSON 反序列化数组
- c# - 列出时间跨度内所有可能时间跨度的算法
- swift - SwiftUI 预览失败并出现 __designTimeString 错误
- html - 引导模式无法正确传递数据
- image - 如何在flutter web中将网络图像显示为NetworkImage之前调整其大小?
- typescript - React admin ReferenceInput 组件在 hydra 响应中无法按预期工作
- python - SMT求解器中的数据类型,支持正常的加法、异或或同时运算