入住 CI 中国社区 登录
CodeIgniter 中国开发者社区 返回首页

zdkmyheart1990的个人空间 https://codeigniter.org.cn/forums/?15148 [收藏] [复制] [分享] [RSS]

日志

ci jquery ajax 乱码 及 ci jquery ajax psot 在php 中得不到 提交的参数的问题 ...

已有 1841 次阅读2012-8-14 15:39 |个人分类:jquery ajax

最近两天在做关于jquery ajax 的一些功能,遇到在google chrom 中能运行但在IE所有版本无法运行的情况,因为代码写的跨度有点大,一开始以为是兼容性的问题,后来逐步分析代码才发现是编码的问题,GBK 和 UTF-8 的问题。
  数据库是UTF-8 编码 ,view 是 UTF-8 编码, 当然 Control 里也声明了UTF-8 但最终在 Control里取得 提交 的数据是GBK ,这里便不知道为什么了。后来在一处查到是汉字在用get 方法提交时会把字符转化成本地字符集,我这里转化成了GBK。由于编码问题导致了后续的一连串的错误。这里处理方法可以有以下三种
1、用 get 方法 提交 在ajax 提交前 用 encodeURI 先进行转换
2、用 get 方法 提交  在control 里 用 urldecode 转换过后再用icov 转换成 UTF-8
3、 用 post 方法提交 (如果这里你的form和control 没有错误,但仍然在control里得不到提交的数据的话那是因为你在 ./application/config/config.php 中设置了$config['csrf_protection'] = TRUE; 这里为什么不能提交请看手册,设置  $config['csrf_protection'] = FALSE;后 post ajax 便可以进行了。)
要想查看ajax 过程中的错误
在 success:function(i){}后面加   ,error: function (xmlHttpRequest, error) {
               for(i in xmlHttpRequest)
                  {
                          alert(xmlHttpRequest[i]);
                 }
           }
就行了

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 入住 CI 中国社区