2016-04-27 5 views
0

私はブラウザのアドレス行から動作しているWeb APIを作成しましたが、AngularJSまたはjQuery呼び出しを記述しようとすると説明がなく失敗します。私はURLに正しいルートがないと思っています。あるいはJSONの書式設定の問題かもしれません。以前のバージョンのWeb APIがあり、AngularJSまたはjQueryからの同じ呼び出しが機能しました。しかし、その以前のバージョンでは、私はそのルートでアクションを宣言しました。次に、私はRESTfulなWeb APIを読んで、ルート内のアクションを省略してHTTPメソッドからルートを外すのがベストプラクティスです。だから、Web APIを再構築してそのようにしましたが、今はクライアント側で再接続できません。誰かが私のURLルートでエラーを見ることができますか?この例でURLをテストして、ブラウザのデータを見ることができます。AngularJSまたはjQueryでWeb API呼び出しを書く方法

注:私はこの問題を解決したと思います。新しいWeb APIにJSONフォーマッタを追加する必要があります。それは私の最初のバージョンにあった。それが今まで私が見つけた唯一の違いです。

  var sURL2 = "http://stevegaines.info/api/Securities?SecurityType=CASH"; 
 
      $http.get(sURL2) 
 
       .then(function (oData) 
 
       { 
 
        alert("oData = " + oData); 
 
        $scope.Securities = oData; 
 
       }, function (response) 
 
       { 
 
        alert("error = " + response.statusText); 
 
       });

+0

私は$のhttpはオブジェクトを送信すべきかと思いますが、私はいつも使用して$ HTTPのようなます。var reqを= { \t方法: 'GET'、 \t URL:\t「あなたのURL ' }; $ http(req).then(function successCallback(successData){}、 関数(errorCallback(errorData){}); hm、コントローラとモデルのsource-codを表示してください、そしてyes、json formatterを確認してください –

+0

あなたのエンドポイントのapiはURL全体ではなく$ http.get()にアドレスします:var sURL2 = "api/Securities?SecurityType = CASH"; –

+0

routeconfigで定義されているルートは何ですか? –

答えて

1

私は最終的に仕事にこれを得ました。クライアントのJavaScriptに問題があると思いますが、Web APIも書き直しましたので、わかりません。私が知っていることは、jQueryの.successメソッドを使用していたことがjavascriptで変更されたことですが、jQueryが.successを非推奨としたために変更しました。私がそれをしたとき、私はdataResponseのdataプロパティを使用しなければなりませんでした。単純なdataResponseは機能しません。私はそれが別のタイプのオブジェクトだと思います。

  $http.get(sURL2) 
 
       .then(function (dataResponse) 
 
       { 
 
        // this doesn't work 
 
        // $scope.Securities = dataResponse.data.records; 
 
        // this doesn't work 
 
        // $scope.Securities = dataResponse; 
 

 
        // this works 
 
        $scope.Securities = dataResponse.data; 
 
       }, function (response) 
 
       { 
 
        alert("error = " + response.statusText); 
 
       });

関連する問題