javascript - 无法在 php 中获取已发布的 FormData

标签 javascript php jquery ajax form-data

我正在尝试在 PHP 中使用发布的 FormData 形式的 AJAX 调用,但我无法检索变量。 我做错了什么?

这是我的 JavaScript

var sendData = new FormData();
sendData.append('itemid',$('select#selectItems').val());
sendData.append('itemtitle',$('#item-title').val());
sendData.append('itemtext',$('#item-text').val());

$.ajax({
    url: 'ajax.file.php',
    type: 'POST',
    dataType: 'text',
    data: sendData,
    cache: false,
    contentType: false,
    processData: false
});

和我的 PHP

$itemid = $_POST['itemid'];
echo $itemid;

在 PHP 中始终未定义!

如果我 print_r ($_POST);

如果我使用 Firefox,PHP 文本为:

Array ( [-----------------------------12850217581176488271638880149 Content-Disposition:_form-data;_name] => "itemid" 99 -----------------------------12850217581176488271638880149 Content-Disposition: form-data; name="itemtitle" The Title -----------------------------12850217581176488271638880149 Content-Disposition: form-data; name="itemtext" The Text -----------------------------12850217581176488271638880149-- )

...使用 Chrome 时,PHP 响应为:

Array ( [------WebKitFormBoundarypyFlwBB31gVYXxRP Content-Disposition:_form-data;_name] => "itemid" 99 ------WebKitFormBoundarypyFlwBB31gVYXxRP Content-Disposition: form-data; name="itemtitle" The Title ------WebKitFormBoundarypyFlwBB31gVYXxRP Content-Disposition: form-data; name="itemtext" The Text ------WebKitFormBoundarypyFlwBB31gVYXxRP-- )

谢谢

最佳答案

我也遇到了同样的问题。当我没有设置 Content-Type 属性时(我使用了 javascript),它起作用了。

然后浏览器显示(在使用 Chrome 调试的请求 header 中):
内容类型:多部分/表单数据;边界=----WebKitFormBoundarygfXi4NfQAXa8g7PU

并且 var_dump($_POST) 向我展示了我想要的内容:
数组(2){[“用户”]=>字符串(4)“测试”[“密码”]=>字符串(7)“测试密码”}

关于javascript - 无法在 php 中获取已发布的 FormData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419350/

相关文章:

javascript - 在自定义命名空间上使用 AngularJs 并删除 window.angular

javascript - 如何使用 JavaScript 将 html 表单用户输入添加到文件中?

php - Symfony2.1映射错误: class_parents()

jquery - scrolltop() 在 chrome 和 safari 中运行不流畅,但在 firefox 中运行

javascript - 将数据加载到控件中时,JQuery 和文档就绪会重复触发

javascript - 父 DIV 的 CSS 干扰 SVG 动画

javascript - 有没有办法同步服务器端和客户端的验证过程?

php - 混合数据库中两个表的数据

javascript - 导航到其他页面时 JS 菜单停止工作

jquery - 使用 JQuery 获取值数组?