我正在使用 jquery 和 jason 将数据发送到另一个 Controller ,但是当我发送数据时,我在 fire bug 中检查它,没有问题,它正确发送它,但在目标页面中,当我 var_dump $_REQUEST
或 $_POST
返回 null。
顺便说一句,我正在使用 codeigniter。
这是我的 jquery 代码:
<script type="text/javascript">
function GetMovieLanguageCategory(Language)
{
$.ajax({
type: "POST",
contentType: "application/json",
url: "/admin/movie/get_language_category",
data: JSON.stringify({"Language":Language}),
success: function(Data)
{
alert(Data);
},
failure: function(ErrorMsg) {
alert(ErrorMsg);
},
});
}
</script>
在我的 Controller 中:
var_dump($_REQUEST);
//var_dump(json_decode($_POST['Language']));
它返回:
array(0) {}
我有什么地方说错了吗?
最佳答案
您正在发送 JSON 数据,但将其标记为 application/x-www-form-urlencoded 数据,并且您尝试将其解析为 application/x-www-form-urlencoded 数据。
更改:
data: JSON.stringify({"Language":Language}),
至
data:{"Language":Language},
并让 jQuery 为您正确编码。
<小时/>如果你想自己编码(不要!):
data: "Language=" + encodeURIComponent(Language);
<小时/>
如果您确实想要发送 JSON:
contentType: "application/json",
data: JSON.stringify({"Language":Language}),
然后,在 PHP 中,get the body of the request并通过 json_decode
运行它。
关于javascript - Jquery Post方法和JSON问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711540/