我有一个超级简单的JS代码,POST到我的本地服务器。 JS和PHP都在本地主机上,所以我现在不担心跨站点问题。这里是我的JS:
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很简单:
<?php
print_r($_POST);
在Chrome调试器,我可以看到网络电话进行,但是在$_POST
接收到的响应总是空的,即它打印出来Array()
。
如果我在PHP中添加类似echo "abc";
的东西,我可以在响应中看到它,所以它正确地打了那个URL。
我正在使用jQuery 2.1.4。
JS控制台不打印出任何错误消息。
任何想法可能是错的?谢谢!
呢'的print_r(的file_get_contents(“PHP://输入”)) ;'显示什么?如果你注释掉'contentType',会发生什么? – Ronnie
实际上,两种解决方案都解决了单独收到任何东西的问题。我不知道有'php:// input'存在。 – Sandy
@Dagon是的,我明确地设置方法为'POST'。 – Sandy