2016-04-04 11 views
-1

を定義されていない私は、多くのStackOverflowの質問、さまざまなチュートリアルやユーチューブ分割動画を通して見ていると(私が発見したことを)今のところどれも私のために、この問題に対処しないは私が... Ajaxのエラー「XXX」は

を取得します1つのファイルを読み込むためのフォームがあります。それはajaxなしでこの罰金を提出する。

<form asp-action="FileIndexView" 
      asp-controller="SuburbsAndPostcodesAdmin" 
      method="post" 
      enctype="multipart/form-data"> 
     <div class="form-horizontal"> 
      <div class="form-group"> 
       <label class="col-md-4 control-label">Select the Suburbs and Postcodes latest CSV File:</label> 
       <input type="file" 
         name="CSVFile" 
         id="txtFileUpload" 
         class="col-md-8 control-label" /> 
      </div> 
      <div class="form-group"> 
       <input type="submit" 
         name="Submit" 
         value="Submit" 
         class="col-md-1 btn btn-primary" 
         disabled="disabled" 
         id="SubmitFile" /> 
      </div> 
     </div> 

私はAjax POSTメソッドを持っています。送信ボタンをクリックすると呼び出されます。すべての良い。

ここにコードがあります。

 $('#SubmitFile').click(function (e) { 
     e.preventDefault(); // <------------------ stop default behaviour of button 

     //var fileUpload = input.files[0]; 
     var url = "/SuburbsAndPostcodesAdmin/test"; 
     var connId = $.connection.hub.id; 
     var fd = new FormData(); 
     fd.append('File', input.files[0]); 
     fd.append('connId', connId); 

     $.ajax({ 
      type: "POST", 
      url: url, 
      data: fd, 
      processData: false, 
      contentType: false, 

     }); 

私はこのITエラーをステップ:

"fd.append( 'ファイル'、input.files [0]);"

コンソールに次のエラーがあります。

ReferenceError: input is not defined 
    <anonymous> 
    FileIndexView:127 
    n.event.dispatch() 
    jquery.min.js:3 
    n.event.add/r.handle() 
    jquery.min.js:3 
    EventLoop.prototype.enter() 
    ... 

なぜこの行にエラーがありますか?

定義されているようにどのように読みますか?

ファイル名はどのようなものでなければならないのですか? (これはフォームに戻る必要があります)

+2

を試してみてください* "なぜ、このライン上でこのerroringはある?" * ... 'input'が定義されていないので。あなたはどこにでもそれを定義していません。 –

答えて

1

問題がinput.files[0]です。

代わりの

fd.append('File', input.files[0]); //here input is not defined 

fd.append('File', $("#txtFileUpload")[0].files[0]); 
+0

これは機能しました。確認するには、名前は任意です。ファイルへの参照は、ファイルが選択されている実際のIDへの参照でなければなりません。見て答える時間をとったすべての人に感謝します。 – si2030

-1

この "Formdata"オブジェクトは疑わしいと思われます。 jQueryのは、単純なオブジェクトを好きなブラウザで、すなわち

$.ajax({ 
     type: "POST", 
     url: url, 
     data: {input: "A", somethingelse: 2, somethingmore: true}, 
     processData: false, 
     contentType: false, 

    }); 

、開発者向けのオプションを使用すると、POST操作でサーバーにプッシュされています正確に何を見るために、ネットワーク]タブに移動します。私はそれがあなたのサーバーメソッドが予期しているものに合わないと賭けるでしょう、それゆえ例外です。

EDIT

は、ファイルのアップロードを行うにしようとしていることを、今まで気付きませんでした。それは、AJAXを介しての痛みとしてよく書かれています。 DropZoneというプラグインで成功しました。ここinput未定義あるのでhttp://www.dropzonejs.com/

関連する問題