jQuery MiniUI

 找回密码
 立即注册
查看: 9947|回复: 8
打印 上一主题 下一主题

DataGrid中文查询参数问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2012-4-14 17:38:56 |只看该作者 |倒序浏览
通过grid.load(key: key)查询.ashx,需要传递中文参数,但是key参数被ashx文件接收时,出现乱码。 如何解决?

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-4-14 21:44:10 |只看该作者
我们示例传递中文,是否有问题?
乱码一般是文件编码的问题,请注意文件编码一致就可以了。
另外,可以把示例代码文件上传,能方便下载测试的。

Rank: 3Rank: 3

板凳
发表于 2012-4-16 18:15:29 |只看该作者
fcrong 发表于 2012-4-14 21:44
我们示例传递中文,是否有问题?
乱码一般是文件编码的问题,请注意文件编码一致就可以了。
另外,可以把示 ...

传递参数时对于的url是用什么方式提交的呢?

Rank: 3Rank: 3

地板
发表于 2012-5-15 15:12:23 |只看该作者
很多地方都是使用的get方式,这样来处理中文就有问题了,尤其是像datagrid的load的,这种显然是存在传递中文的需要的,且该请求方式目前是框架写死的,是否可以将其修改为post方式请求。

Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。

Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,要是多几个复杂条件组合提交就会导致参数无法传递了。

希望框架中尽量使用post方式来请求吧。

Rank: 9Rank: 9Rank: 9

5#
发表于 2012-5-15 15:44:43 |只看该作者
grid.load方法,传递的参数是有限的,所以默认使用get方式。
grid.ajaxMethod="post";
这样就能post提交。

注意:
grid.ajaxMethod="post";
此做法是一个私有属性处理,不能保证以后的兼容性。

Rank: 3Rank: 3

6#
发表于 2012-5-15 16:08:58 |只看该作者
fcrong 发表于 2012-5-15 15:44
grid.load方法,传递的参数是有限的,所以默认使用get方式。
grid.ajaxMethod="post";
这样就能post提交。

传递的参数有限??这个是技术限制还是需求限制的呢?

那一些复杂的组合查询是否就不能用grid了?不知道是否有其它的实现,只要是能实现将查询条件传递到后台(肯定有中文的),最好是不要在请求的url上能看出来,因为现在很多服务器都可以把请求url记录到日志文件中,数据的安全性上就存在风险了。

Rank: 9Rank: 9Rank: 9

7#
发表于 2012-5-15 16:17:38 |只看该作者
嗯。
下面会默认让grid使用post提交方式。

Rank: 1

8#
发表于 2013-5-16 23:18:28 |只看该作者
fcrong 发表于 2012-5-15 15:44
grid.load方法,传递的参数是有限的,所以默认使用get方式。
grid.ajaxMethod="post";
这样就能post提交。

关于设置了grid.ajaxMethod="post"后,怎么把获得的多个参数传递到url中?需要增加一个form表单吗?

Rank: 8Rank: 8

9#
发表于 2013-5-17 09:11:11 |只看该作者
mr_jackchen 发表于 2013-5-16 23:18
关于设置了grid.ajaxMethod="post"后,怎么把获得的多个参数传递到url中?需要增加一个form表单吗? ...

过多参数不要通过url传递,url传递是有长度限制的。

你用grild.load({key1:"1",key2:"2"}) 的方式传

Archiver|普加软件

GMT+8, 2024-11-25 23:30 , Processed in 1.042760 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部