首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用$.ajax读取POST数据

无法使用$.ajax读取POST数据
EN

Stack Overflow用户
提问于 2015-07-20 23:18:56
回答 1查看 63关注 0票数 0

我有一个超级简单的JS代码,发布到我的本地服务器。JS和PHP都在本地主机上,所以我现在不担心跨站点问题。这是我的JS:

代码语言:javascript
运行
复制
var ENDPOINT_BASE = '';
var ENDPOINT_USER_LOGIN    = { url: '/user/login',    method: 'POST'};
var ENDPOINT_USER_REGISTER = { url: '/user/register', method: 'POST'};

var toSend = {'credentials': { 'email':'1', 'password':'123'}};

$.ajax({
    method: ENDPOINT_USER_LOGIN.method,
    url: ENDPOINT_BASE + ENDPOINT_USER_LOGIN.url,
    contentType: "application/json",
    data: toSend
});

我的PHP很简单:

代码语言:javascript
运行
复制
<?php
print_r($_POST);

在Chrome调试器中,我可以看到网络调用正在进行,但是在$_POST中接收到的响应总是空的(它打印出Array() )。

如果我在PHP中添加类似echo "abc";的内容,我可以在响应中看到它,因此它正确地击中了该URL。

我使用的是jQuery 2.1.4。

JS控制台没有输出任何错误消息。

有什么不对的吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 23:34:15

PHP没有像您预期的那样填充$_POST,因为您正在将头设置为JSON。我认为它的默认格式是url格式编码的。

要么不定义内容类型,要么如果您希望发送实际的JSON,您可以通过执行以下操作来实现这一点:

代码语言:javascript
运行
复制
$postdata    = file_get_contents('php://input');
$request     = json_decode($postdata);
$credentials = $request->credentials;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31527884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档