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

在将JavaScript/PHP/AJAX应用程序转换为使用jQuery的过程中,遇到了null、true和false值被转换为字符串的问题。使用jQuery的$.ajax()函数时,这些值在PHP端被接收为字符串,而在非jQuery的AJAX实现中则能正确地以原始类型接收。通过将数据JSON.stringify()后再发送,可以解决此问题,使PHP能够正确解析这些值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在转换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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值