2017-11-06 13 views
0

角度jsを使用しています。1.6.4私のasmxサービスを角$ http.postで呼び出しますが、内部サーバーエラーが発生しました。サービスが呼び出されず、デバッグできませんでした。

(function() { 
     angular.module("myapp", []) 
      .controller("TestController", function ($scope,$http) { 
       $scope.SaveFormData = function() { 
        $scope.msg; 
        var user = {}; 
        user.FirstName = $scope.FirstName; 
        user.LastName = $scope.LastName; 


        $http.post('http://localhost:50829/pages1/TestService.asmx/SavePersonalData', JSON.stringify({ data: user })).then(function (response) { 
         if (response.data) { 
          console.log(response.data); 
          $scope.msg = response.data.d; 
         } 

        }, function (response) { 
         Console.log("Service not Exists"); 
         Console.log(response.status); 
         console.log(response.statusText); 

        }); 

       }    

       } 
      }); 
    })(); 

、ここで私のASMXサービスがどのように私は私のASMXサービスに私のhtmlフォームの姓を投稿しない

[WebMethod] 
    public string SavePersonalData(PersonalData data) 
    { 
     System.Diagnostics.Debug.WriteLine(data.FirstName); 
     return "saved"; 
    } 

です。

+0

を追加します、[タグangularjs]を[タグ:角度]タグは、バージョン2のためのものであり、後で。 – Igor

+0

'data:JSON.stringify($ scope.FirstName)、' - あなたのデータが非常に明示的なJSON ...なぜあなたはそれがエンコードされたフォームであると主張していますか? '' Content-Type ':' application/x-www-form -urlencoded'' – Quentin

+0

あなたは 'JSON.stringify'を単一の文字列変数に使うべきではありません。意味がありません。そのメソッドは、*オブジェクト*をjson形式の文字列に変換するために存在します。 – Igor

答えて

0

あなたは、あなたがC#でオブジェクトを受信する必要がLoCは

data: { FirstName: $scope.FirstName }, 

を持つオブジェクトを送っています。送信しているものと一致するオブジェクトを受け入れるようにC#コードを変更します。

タグを付けてくださいクラス

public class PersonalData { 
    public string FirstName {get;set;} 
} 

と角度1.xの質問については、ウェブメソッド

[WebMethod] 
public string SavePersonalData(PersonalData data) 
{ 
    System.Diagnostics.Debug.WriteLine(data.FirstName); 
    return "saved"; 
} 
+0

hi lgor、あなたの助けに感謝し、今働いています。そして、私はangular $ http.postメソッドを使用して応答を取る方法を学びました –

関連する問題