Jquery ajax编码数据

我有这个代码(下面)..
$.ajax
({
    type: "POST",url: "../WebServices/Feedback.svc/sendFeedback",dataType: 'json',async: false,data: '{"stars": "' + stars + '","rating" : "' + rating + '","note" : "' + encodeURIComponent(note) + '","code" : "' + code + '","permission" : "' + permission + '"}',contentType: "application/json; charset=utf-8"
});

我正在使用它将数据传递给Web服务,但问题是如果有任何字符在这里(,/?:@& = $#).我已经放入了一个工作正常的encodeURIComponent,然后在Web服务中我再次将它们放回去.

我问的是,是否有更好的方法来实现这一目标?似乎有点疯狂,每次传递它之前我必须编码字符串..

谢谢

解决方法

Web服务是属于您还是您使用其他人的Web服务? Web服务不接受的原因是什么(?/?:@& = $#)?

jQuery $.ajax默认的contentType是application / x-www-form-urlencoded,这意味着jQuery将对内容进行编码.但是,由于您指定了不同的contentType,因此数据不会被编码,因此您必须进行自己的编码.

或者,您可以尝试删除contentType选项并正常传入您的内容(不使用encodeURICompnent).

$.ajax
({
    type: "POST","note" : "' + note + '",});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...