相关疑难解决方法(0)

jQuery,AJAX,JSONP:即使它是空的,如何实际发送数组?

我已经阅读过这些问题,但没有一个能满足我的需求:

(最新的一个说只是添加硬编码的引号,['']但我不能这样做,我正在调用一个返回数组的函数)

所以这是我的代码(注意问题在于空数组new Array()):

function AjaxSend() {
  $.ajax({
    url: '/json/myurl/',
    type: 'POST',
    dataType: 'jsonp',
    data : { 'tab':new Array() },
    context: this,
    success: function (data) {
      if (data.success) {
        console.log('ok');
      }   
      else {
        console.log('error');
      }   
    }   
  }); 
}
Run Code Online (Sandbox Code Playgroud)

简单呃?这是我的Php代码:

echo '_POST='.var_export($_POST,true)."\n";
Run Code Online (Sandbox Code Playgroud)

这是结果:

_POST=array (
)
jQuery1710713708313414827_1329923973282(...)
Run Code Online (Sandbox Code Playgroud)

如果我将空数组更改为非空,即:

'tab':new Array({ 't':'u' },{ 'v':'w' })
Run Code Online (Sandbox Code Playgroud)

结果是:

_POST=array (
  'tab' => 
  array (
    0 => 
    array (
      't' => 'u', …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json

27
推荐指数
1
解决办法
2万
查看次数

JQuery在发送时删除空数组

我有以下代码:

$.post('block_ajax.php'
    ,   {   'action': 'set_layout'
        ,   'listid': 123
        ,   'layout': []
        }
    ,   function(data) {
            // ...
        }
);
Run Code Online (Sandbox Code Playgroud)

接收脚本(block_ajax.php)仅接收"action"和"listid"参数.当我检查使用Chrome发送的内容时,我看到"layout"参数甚至没有发送到后端脚本.

由于空数组与缺少数组之间存在差异,我想让JQuery发送空数组.我可以找到一些迹象表明JQuery(1.6.1)似乎是这样做的,但不是如何阻止它这样做.JSON格式允许空数组和空对象,所以我认为它应该是可能的.

有人知道要改变什么,所以JQuery可以发送空数组吗?

arrays ajax jquery object

22
推荐指数
2
解决办法
1万
查看次数

标签 统计

jquery ×2

ajax ×1

arrays ×1

javascript ×1

json ×1

object ×1