ajax传到服务器的值为空,无法使用jQuery AJAX将null传递给服务器.在服务器上收到的值是字符串"null"...

我正在转换javascript/php/ajax应用程序以使用jQuery来确保与Firefox以外的浏览器兼容.

我使用jQuery的ajax函数传递true,false和null值时遇到问题.

Javascript代码:

$.ajax

(

{

url : ,

dataType: 'json',

type : 'POST',

success : receiveAjaxMessage,

data:

{

valueTrue : true,

valueFalse: false,

valueNull : null

}

}

);

PHP代码:

var_dump($_POST);

服务器输出:

array(3) {

["valueTrue"]=>

string(4) "true"

["valueFalse"]=>

string(5) "false"

["valueNull"]=>

string(4) "null"

}

问题是null,true和false值正在转换为字符串.

当前使用的Javascript AJAX代码正确传递null,true和false,但仅适用于Firefox.

有谁知道如何使用jQuery解决这个问题?

下面是一些工作代码(不使用jQuery)与上面给出的不工作代码进行比较.

Javascript代码:

ajaxPort.send

(

,

{

valueTrue : true,

valueFalse: false,

valueNull : null

}

);

PHP代码:

var_dump(json_decode(file_get_contents('php://input'), true));

服务器输出:

array(3) {

["valueTrue"]=>

bool(true)

["valueFalse"]=>

bool(false)

["valueNull"]=>

NULL

}

请注意,正确接收null,true和false值.

另请注意,在第二种方法中,$ _POST数组未在PHP代码中使用.我认为这是问题的关键,但我找不到使用jQuery复制此行为的方法.

在接受以下答案后添加了此部分.

这是原始代码的更正版本.

Javascript代码:

$.ajax

(

{

url : ,

dataType: 'json',

type : 'POST',

success : receiveAjaxMessage,

data : JSON.stringify

(

{

valueTrue : true,

valueFalse: false,

valueNull : null

}

)

}

);

PHP代码:

var_dump(json_decode(file_get_contents('php://input'), true));

服务器输出:

array(3) {

["valueTrue"]=>

bool(true)

["valueFalse"]=>

bool(false)

["valueNull"]=>

NULL

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值