0

以下のコードは、jquery ajax を使用する場合に機能しますが$http、Angular は以下のコードを使用してサーバーにデータを送信しません。

myapp.factory('startCampFactory',function($http,$q,$rootScope){
  return {
    startNewCampaign : function(){

      var e = $("input#email");
      var email = e.val();
      var campname = $("input#campaignname").val();
      var about = $("textarea#about").val();
      var tamt = $("input#targetamount").val();
      var edate = $("input#enddate").val();
      var invitees = $("input#invitees").val();
      var file_data = $("#file").prop("files")[0];
      var form_data = new FormData();     

      form_data.append("file",file_data);
      form_data.append("email",email);
      form_data.append("campaignname",campname);
      form_data.append("about",about);
      form_data.append("targetamount",tamt);
      form_data.append("enddate",edate);
      form_data.append("invitees",invitees);

      console.log(email+about+campname);

      var deferred = $q.defer();

      $http({
           method:'POST',
           url:'/startcampaign',
           data:form_data,
           headers:
             {
               'Content-Type'​ :'application/x-www-form-urlencoded'
             }
        }).success(function(data,status,headers,config) { 
          $rootScope.$apply( function() { 
          deferred.resolve(); 
        });
     }).error(function(){
        $rootScope.$apply(function() 
          { 
            deferred.reject();
          }); 
     });
     return deferred.promise;
   }
});
4

4 に答える 4

0

datajQuery のはAngular の に$.ajax対応していません。Angularの代わりに使用する必要がある場合があります。これを見ましたか:data$http.get/postparamsdata

jQuery ajaxリクエストは機能しますが、同じAngularJS ajaxリクエストは機能しません

于 2013-09-28T10:16:01.930 に答える
0

コンテンツ タイプが原因で問題が発生している場合は、ヘッダー部分を削除するか、追加します

    contentType:false or 'multipart/form-data'

      $http({
        method:'POST',
        url:'url'
        data:formData,
        contentType:false,
        processData: false
    }).
    then(function(result) {
        alert(result);
    });
于 2014-01-06T10:57:43.270 に答える
0

私もこれで運が悪く、最終的にjQuery.ajaxを使用しました(jsonpを使用していましたが)。

リクエスト ペイロードではなくフォーム データとしてデータを投稿するにはどうすればよいですか? を参照してください。

おそらく、「渡されたデータは文字列に変換する必要があります」が関連しています。

于 2013-09-28T08:56:59.877 に答える