16

Ajax を使用して既に構築されている API への ajax 要求を使用して送信されるフォームを設定しようとしています。何らかの理由で、ファイルをシステムに転送したくないだけですが、これを処理するために構築されたバックエンドが既にあり、正常に動作します。

私のサービスは、ここで見つけたチュートリアルに基づいて次のようになります: http://badwing.com/multipart-form-data-ajax-uploads-with-angularjs/

addActivity: function(url){
    return $http({
        method: 'POST',
        url: REQUEST_URL + 'Volunteering/AddActivity?token=' + token + url,
        headers: {
            'Content-Type': 'multipart/form-data'
        },
        data: {
            file: $scope.file
        },
        transformRequest: formDataObject
    }).
    then(function(result) {
        console.log(result);
        return result.data;
    });
},

私が見逃しているのは本当に些細なことだと感じています。誰か助けてもらえますか?

4

4 に答える 4

8

angular + laravelを使用したファイルアップロードの実装に問題がありました。マルチパートフォームを送信しようとするたびに、明らかに送信されているにもかかわらず、サーバーはフォームデータを受信しないか、そう思っていました。私はついにこの記事を見つけ、すべての問題を解決しました。

簡単に言うと、これは $http 呼び出しです。

var data = new FormData();

data.append("file", file);

$http.post("//myDomain.com/api/demo", data, {
    headers: { 'Content-Type': undefined },
    transformRequest: angular.identity
}).success(function (data, status, headers, config) {

}).error(function (data, status, headers, config) {

});

rolin.tencent.Shenzhen による別の回答では、ブラウザがそれを整理できるようにする設定についても言及されていますContent-Typeundefined

于 2015-11-27T08:01:29.490 に答える
3

データはdata: $scope.file

そして重要なこと:'Content-Type': undefinedブラウザが正しいコンテンツタイプを設定するように設定する必要があります。

于 2014-12-05T02:56:59.220 に答える
1

このプラグインを使用できます。高度な設定も可能です: https://github.com/danialfarid/ng-file-upload

于 2016-07-07T17:12:10.043 に答える