• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用ajax以post的方式传值,接收的值与传的不一样

php 搞代码 4年前 (2022-01-25) 51次浏览 已收录 0个评论
文章目录[隐藏]

<body>

在显示页面用ajax以post的方式传值,值data为json格式。在控制器中接收,但是只是接收到了部分值。传的值data中有个url,url中含有特殊符号&,接收的值就是到这个符号,后面的没有了。如截图,源代码中的data是我想要的值。

回复内容:

<body>

在显示页面用ajax以post的方式传值,值data为json格式。在控制器中接收,但是只是接收到了部分值。传的值data中有个url,url中含有特殊符号&,接收的值就是到这个符号,后面的没有了。如截图,源代码中的data是我想要的值。

取决于你传递给data的类型:

  • 如果是对象,jquery会在发送ajax请求时自动添加encodeURIComponent,&符号被编码成%26,不会被formData自动截断
  • 如果data是一个字符串,jquery会自动将字符串放在formData里原封不动发送给服务器;由于formData是通过&截断的,所以字符串在没经过encodeURIComponent的&处自动被截断了

提交之前,URL Encode一下你传的这个url

data对应的值使用JSON.stringify({})封装一下即可
例如:

<code>$(".a_post").on("click",function(event){    event.preventDefault();//使a自带的方法失效    $.ajax({           type: "POST",           url: "url地址",           contentType:"application/json",           data: JSON.stringify({param1:"param1",param2:"param2",url:"http://xxxx?a=a&b=b&c=c",param3:"param3"}),//参数列表           dataType:"json",           success: function(result){              //请求正确之后的操作           },           error: function(result){              //请求失败之后的操作           }    });});</code>

查看请求参数如下:

本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码

用这个JSON.stringify({})封装了,就是ajax传的时候出问题了,用data:’data=’+data,这样传值就有问题,但是用data:{data:data},就可以,是为什么呢


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用ajax以post的方式传值,接收的值与传的不一样

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址