为什么 jQuery.post 最终会变成 PHP 的 _POST 美元,而我的香草 JS 帖子却没有
Why does jQuery.post end up in PHP's $_POST, and my vanilla JS post does not?
我正在使用vanilla JavaScript发送带有JSON数据的AJAX发布请求:
xhr.open(method, url,true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
标头看起来不错,但在 PHP 中$_POST
是空的。关于SO有几个相关的问题,比如这个,但他们都建议使用:
json_decode(file_get_contents("php://input"))
但是,如果我使用jQuery.post
我的变量最终会变成$_POST
,所以一定是可能的。我的问题是怎么做?我可能做错了什么?或者我可以改变什么?
这是因为 jQuery 将你传入的数据转换为表单格式的字符串,带有一个 application/x-www-form-urlencoded
标头,这是 PHP 识别并从中正确创建$_POST
超全局的。
您的本机 XMLHttpRequest 将数据作为带有 application/json
标头的 JSON 格式的字符串发送,PHP 不会将其识别为表单数据,也不会从中创建$_POST
数组。
在现代浏览器中,您可以使用formData
来创建可以使用 ajax 发送并由 PHP 识别的有效表单数据
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 我的单元测试选项是什么
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 我的职位回报太快了,如何做出承诺
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何识别我的网站中的慢速设备
- 如何将JSON数据导入我的ejs模板
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 知道为什么我的旋转木马不会自动更改图片吗
- 我的模板未被解析
- 无法将数据从firebase获取到我的html页面
- 角度图表;t显示在我的页面中
- 我的AngularJS表达式没有'不起作用
- 将电视直播频道从网站嵌入我的网站
- /undefined在我的404错误日志中多次出现
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 为什么 jQuery.post 最终会变成 PHP 的 _POST 美元,而我的香草 JS 帖子却没有
- 香草js不能在我的rails应用程序上工作