使用jQuery ajax文件上传ajaxfileupload组建碰到的问题:返回json带有pre标记的解决方案...

开发货比百家购物搜索的后台,增加文件异步上传的功能,前端使用的js组建是jquery,曾经使用过ajaxfileupload,直接使用,碰到了个问题:

返回jason格式的数据报了错。于是,firebug下跟踪下,结果如下:


结果是正常的。

检查下spring servlet的配置,也没有错。
    <bean
        class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="defaultContentType" value="application/json" />
        <property name="mediaTypes">
            <map>
                <entry key="json" value="application/json" />
                <entry key="html" value="text/html" />
            </map>
        </property>
        <property name="viewResolvers">
            <list>
                <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
                <bean
                    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="viewClass"
                        value="org.springframework.web.servlet.view.JstlView" />
                    <property name="prefix" value="/jsp/" />
                    <property name="suffix" value=".jsp" />
                </bean>
            </list>
        </property>
        <property name="defaultViews">
            <list>
                <!-- 输出为JSON数据 -->
                <bean
                    class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
                </bean>
            </list>
        </property>
    </bean>

接着分析下ajaxfileupload源代码,ajaxfileupload 是创建了个iframe,来实现异步上传文件,firebug看下iframe的内容,发现莫名其妙的加上了<pre>,难怪导致解析json数据发生错误。

 

继续看源代码,最下面发现:

if ( type == "json" )
            eval( "data = " + data );

改成:

        if ( type == "json" ){
            data = jQuery.parseJSON(jQuery(data).text());
        }

OK,如此问题就解决了。

比较购物网站 :http://www.huobibaijia.com/ 。研究比较购物技术,感兴趣的朋友QQ联系。

QQ:909546261

 

 本文为原创,雷同者均为抄袭,可以转载作为学习研究或备份所用,本人保留一切权利,转载请注明出处。

原文:http://emeifeng.iteye.com/blog/1307506

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值