gpt4 book ai didi

php - JSON 数据未在 POST 中发送?

转载 作者:行者123 更新时间:2023-11-28 02:31:50 25 4
gpt4 key购买 nike

我正在构建一个 AJAX 表单,并尝试通过 JSON 发送 3 个字段。

客户端,表单被序列化并输入为JSON格式:

$('#form-signin').live('submit', function(event) {
var target = $('#ajax');
var url = '/ajax/user/authenticateLevel2';

$.ajax({

type: "POST",
url: url,
data: $.base64.encode($('#form-signin').serialize()),
dataType: 'json',

success: function(data, status) {
$.getJSON(url, function(data) {
$('#ajax').html($.base64.decode(data.html));
$('#ajax').modal();
});
}
});
event.preventDefault();
});

服务器端,我的路由器将 URL 请求拆分,看到第一部分包含“ajax”,然后继续将路由请求专门传递给 AJAX 处理程序。

我的问题是,即使在路由器内部,检查用于获取帖子信息的$_REQUEST,帖子数据也不在那里。 $_POST 也是如此。

即使请求命中的第一页 (index.php),$_REQUEST 也没有数据。

我做错了什么?

服务器端,

请求被发送到包含自动加载器和初始化脚本的index.php。

init 脚本初始化数据库连接,设置错误、异常和 session 处理,然后将请求传递到路由器。

路由器在其构造方法中:将URL设置为数组(分解$_SERVER['REQUEST_URI']),然后设置相关的 Controller 、方法和附加参数。

在本例中,当我们执行 ajax 请求时,会在分派(dispatch)请求之前进行特殊处理。

方法参数设置为:

    $requestParams = $_REQUEST;
unset($requestParams['url']);

此请求参数与附加信息(url、 Controller 、方法和数据库对象)一起传递以进行调度。

在所有情况下,我们主要使用此方法进行调度:

            $dispatchedController = new $this->controller($this->database);
$method = $this->method;

return $dispatchedController->$method($this->params);

最佳答案

如果我记得很久以前使用过一个插件,方法 $.base64.encode() 返回一个字符串,因此您发送到服务器的内容可能类似于一个没有值的参数。

我相信你应该做类似的事情

data: "foo=" + $.base64.encode($('#form-signin').serialize()),

关于php - JSON 数据未在 POST 中发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com