AjaxFileUpload возвращает панель загрузки, когда данные json - PullRequest
2 голосов
/ 07 апреля 2010

Я использую AjaxFileUpload (http://www.phpletter.com/Our-Projects/AjaxFileUpload/) для загрузки файла и получения ответа типа результата json в struts2 (code.google.struts2jsonresult.JSONResult)

, но браузер всегда всплывающая панель загрузки,Пожалуйста, дайте мне несколько советов, заранее спасибо

Вот мой конфиг в struts.xml:

......

<result-type name="json" class="code.google.struts2jsonresult.JSONResult">

............


<action name="doGetList" method="doGetList"  
class="main.java.GetListAction">   

   <result type="json">
    <param name="target">jsonObject</param>
    <param name="deepSerialize">true</param>
    <param name="patterns"> -*.class</param>
   </result>
  </action>

и js client:

function ajaxFileUpload(){



    $("#loading").ajaxStart(function(){

              $(this).show();

       }).ajaxComplete(function(){

           $(this).hide();
       });

    $.ajaxFileUpload
    (
     {
      url:'doGetList.do',
      secureuri:false,
      fileElementId:'uploadfile',
      dataType: 'json',
      success: function (data, status)
      {

       if(typeof(data.error) != 'undefined')
       {
        if(data.error != '')
        {
         alert(data.error);
        }
        else
        {
         alert(data.msg);
        }
       }     
      },
      error: function (data, status, e)
      {
       alert(e);       
       alert(data.records);

      }   
     }
    )

  return false;

 }

1 Ответ

1 голос
/ 09 июля 2010

У меня такая же проблема в ruby ​​на рельсах.

Я заметил, что заголовок возврата был «Content-Type: apllication / json», когда я использовал этот код ...

render :json => {:error => "", :msg => data}

Тогда я попытался использовать следующее ...

render :text => {:error => "", :msg => data}.to_json

После этого заголовок возврата был изменен на «Content-Type: text / html», затем проблема была решена.

...