今天遇到的一个小坑,js传参 转义符(\)的问题

本文讨论了在使用jQuery AJAX进行参数传递时遇到的转义符问题,并提供了解决方案,通过改变参数传递的方式避免了转义符导致的参数错误,确保了数据的正确传输。

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

今天改了一个以前人员的bug问题,就是传参数时候出现\的问题

例如传的参数是http://.*?.xx.com/\d+/\d+/\d+/.*?.html.*这样一个正则

使用jquery的ajax如下:

$.ajax({
	type: "POST",
	url: "./index.php?xxx",
	data: "host="+strHost,
	dataType: "json",
	success:function(r){
		alert("ok");
	}error:function(r){
		alert("error");	
	}
})
传过去的参数strHost 就变成了这样:

http://.*?.xx.com/d+/d+/d+/.*?.html.*

原因在于data的格式问题,使用"host="+strHost;这种 \d 会被js自动转义

应当使用{"ss":ss}这样的传值方式,jquery的ajax会帮你把参数完整传到后台去

最后结果:

$.ajax({
	type: "POST",
	url: "./index.php?xxx",
	data: {"host":strHost},
	dataType: "json",
	success:function(r){
		alert("ok");
	}error:function(r){
		alert("error");	
	}
})

谢谢各种坑,让我成长



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值