2016-10-27 7 views
2

AngularJSで投稿を使用すると、コンテンツタイプによって常に私が混乱しました。 コンテンツタイプ:AngularJSでコンテンツタイプを選択する方法

  1. 私はファイルオブジェクトとJSONデータをポスト...未定義
  2. $http({ 
        headers: {'Content-Type': undefined}, 
        processData: false, 
        method: 'POST', 
        cache: false, 
        url: sendUrl, 
        data: sendObj, 
        transformRequest: function (data, headersGetterFunction) { 
         return data; // do nothing! FormData is very good! 
        } 
    }) 
    

  • をURLエンコード。

    コンテンツタイプが未定義に設定されている必要があります。ここにはsome clueがあります。しかし、なぜ私は未定義に設定する必要があります知りません。

  • 答えて

    1

    コンテンツタイプをundefinedに設定する必要があります。これにより、ブラウザでコンテンツタイプが生成されます。ファイルのアップロードには複数パートのリクエストが必要で、それらのパート間には境界が必要です。このようにして生成Content-Typeヘッダーは次のようになります

    Content-Type=multipart/form-data; boundary=---------------------------99614912995 
    

    boundary=。値はブラウザによって生成され、自分で設定することはできません。

    transformRequestを設定する必要がある理由は、デフォルトの変換であるため、AngularはデータをJSONとして送信します。しかし、それを短くすることができます:

    transformRequest: angular.identity, 
    
    +0

    ありがとうzeroflagL。 – hulkyuan

    関連する問題