質問: new formdata($(this).closest('form')[0])); $.ajax({ url: "index.php?option=com_jsmdownload&task=imageupload", type: "post", data: new formdata(formdata), contenttype: false, cache: false, processdata:false, success: function(data){ alert(data); }, error: function(){ } }); })); 以下は、単純なファイルボックスとボタンを含むhtmlコードです。<form action="<?php echo jroute::_('index.php'); ?>" method="post" name="adminform" id="adminform" enctype="multipart/form-data"> <input type="file" id="and_36x36" name="and_36x36"> <input id='icon-submit' type='button' value='next ->' /> </form> 以下は、imageuploadタスク用のcontroller.phpのphpコードです。function imageupload(){ jfactory::getdocument()->setmimeencoding( 'application/json' ); print_r($_files); jfactory::getapplication()->close(); } ファイルを選択してボタンをクリックすると、php関数はまだ呼び出されておらず、以下の出力しか表示されません。私は何が間違っているのかわかりません。選択したファイルを取得してサーバーにアップロードし、ブラウザーに戻ります。複数の投稿を参照しましたが、回答が見つかりません。1つの観察として、joomla mvcをインポートせずにurlをプレーンなphpファイルに変更すると、正常に動作し、以下の出力が表示されることがあります。問題は、コンポーネントビューにリンクすると呼び出されないことだけです。これを修正するにはアドバイスが必要です。
回答: ページ全体ではなくコンポーネントの出力のみを返すには、ajax呼び出しのurlに「&tmpl = component」を追加する必要があります。変化するurl: "index.php?option=com_jsmdownload&task=imageupload", にurl: "index.php?option=com_jsmdownload&task=imageupload&tmpl=component", それを試して、それが機能するかどうかを確認してください。