从AJAX请求剥离POST的PHP配置?

时间:2014-08-11 19:09:42

标签: php jquery ajax post bluehost

我知道这似乎太复杂了,但我很困惑。

我有一个页面使用jQuery的post方法向我的API发送AJAX POST请求。它们都在同一个域/服务器上。

$.post('api/login.php', {username: 'test', password: 'test'}).done(function (res) {
    alert(res.response);
});

API如下所示:

<?php
exit (json_encode(array ('response' => print_r($_REQUEST, true))));

这在我的本地WAMP设置中按预期工作,但在Bluehost上,它只显示Array (),就好像请求中没有参数一样。

如果我将$.post更改为$.get,则会很好地接收这两个参数。

如果我使用HTML表单并在不使用AJAX的情况下发送数据,例如

,它也会按预期工作
<form method="post" action="api/login.php">
    <input type="text" name="username" value="test">
    <input type="text" name="password" value="test">
    <input type="submit">
</form>

我认为我已经用尽了我可以创建的测试以试图消除任何其他可能性,它只是归结为一些非常奇怪的东西 - 我的PHP脚本在AJAX请求中没有收到POST字段。

1 个答案:

答案 0 :(得分:1)

由于服务器能够从HTML接收帖子值。 jQuery post方法可能有问题。所以在jQuery帖子上你可以试试ajax函数来发布数据。更换以下功能,看看它的工作天气。

$.ajax({
type: "POST",
url: "api/login.php",
   data: { username: 'test', password: 'test' }
})
.done(function( res ) {
   alert(res.response);
});