我知道这似乎太复杂了,但我很困惑。
我有一个页面使用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字段。
答案 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);
});