早上好,
我一直在寻找答案,但实际上并没有发现任何有效的方法,因此我终于要在这里询问,然后再拔掉其余的头发。
我基本上是在尝试模仿,就好像我使用jQuery.param()对带有数组名称的表单输入进行序列化来处理嵌套对象一样。
例如,如果输入看起来像这样
<input type="text" name="ajax_input[ajax_action]" value="get_column_settings" /><input type="text" name="ajax_input[column_name]" value="text_column" />
我认为ajax调用看起来像这样:
jQuery.ajax({
url: '/path_to_ajax.php',
data: jQuery.param({'ajax_input':{'ajax_action':'get_column_settings','column_name':'test_column'}}),
type: 'post',
dataType: "json"}).done(function(data){alert('Success!');});
然后我假设我将像这样检索服务器上的数据:
<?php echo 'Action:'.$_POST['ajax_input']['ajax_action'].' Column Name:'.$_POST['ajax_input']['column_name'];?>
但是我收到“无法加载资源:服务器以400(错误请求)状态响应”错误
如果我将数据更改为:
data: jQuery.param({'ajax_action':'get_column_settings','column_name':'test_column'})
像这样在服务器上检索它:
<?php echo 'Action:'.$_POST['ajax_action'].' Column Name:'.$_POST['column_name'];?>
一切正常。
格式化嵌套对象的方式是否存在问题,从而导致错误的请求错误,或者该错误是由我在服务器端检索它的方式引起的?
谢谢!