zoukankan      html  css  js  c++  java
  • ajaxFileUpload插件上传文件 返回 syntaxError :unexpected token

    问题是json返回值中包含了html代码,这是ajaxFileUpload需要改进地方。

    从错误提示上看有点像是json数据中出现了<(尖括号),为了看到json数据,将js修改如下: 

    function ajaxFileUpload() {
        
      $.ajaxFileUpload
        (
          {
            url: '/upload',
            secureuri: false,
            fileElementId: 'file_field',
            dataType: 'content', //这里修改为content
                
            success: function (data, status) {
              alert(data);
            },
                    
            error: function (data, status, e) {
               alert(e);
            }
          }
        )
    }

    结果返回的json数据如猜测,json数据被包含在一个<pre></pre>的标签中,如下图:

    网上查了下原因,是因为Server端的Response上加上了contentType="application/json"。但有时后端这么做是必须的,所以修改ajaxFileUpload源码,将<pre></pre>标签去掉,如下: 

    uploadHttpData: function( r, type ) {
            var data = !type;
            data = type == "xml" || data ? r.responseXML : r.responseText;
            // If the type is "script", eval it in global context
            if ( type == "script" )
                jQuery.globalEval( data );
            // Get the JavaScript object, if JSON is used.
            if ( type == "json" ) {
                 ////////////以下为新增代码///////////////
                 data = r.responseText;
                 var start = data.indexOf(">");
                 if(start != -1) {
                   var end = data.indexOf("<", start + 1);
                   if(end != -1) {
                     data = data.substring(start + 1, end);
                    }
                 }
                  ///////////以上为新增代码///////////////
                  eval( "data = " + data);
            }
            // evaluate scripts within html
            if ( type == "html" )
                jQuery("<div>").html(data).evalScripts();
    
            return data;
        }

    至此,大工告成,ajaxFileUpload的dataType正常使用json。 

  • 相关阅读:
    创建一个动作-Action类:
    如何使用拦截器?
    Struts2框架拦截器:
    创建多个动作:
    创建一个视图JSP文件的helloWorld.jsp
    创建动作-Action:
    struts.properties文件
    IP地址
    详解TCP和UDP数据段的首部格式
    TCP释放连接的四次挥手过程
  • 原文地址:https://www.cnblogs.com/lasthelloworld/p/4952162.html
Copyright © 2011-2022 走看看