2016-11-24 19 views
0

私はMS SQLサーバーにデータを送受信できるIonicフレームワークを使用してアプリケーションを作成しようとしています。このため私はWeb APIを使用しています。私はデータを取るのに何の問題もないが、新しいデータを送るのに何か問題がある。ここに私のイオン性のコードは次のとおりです。

angular.module('starter.controllers',[]) 

.controller('CheckListCtrl', function($scope, ChecklistService, $ionicPopup) { 
    function addCheck(){ 
    ChecklistService.addCheck() 
    } 

.factory('ChecklistService', ['$http', function ($scope, $http) { 
    var urlBase = 'http://localhost:56401/api'; 
    var CityService = {}; 
    CityService.addCheck = function(){ 
    var url = urlBase + "/TBLCHECKLISTs" 
    var checkdata = { 
     AKTIF : true, 
     SIL : false, 
     KAYITTARIHI : Date.now(), 
     KULLANICIID : 3, 
     BASLIK : "Onur", 
     TAMAMLANDI : false, 
     TAMAMLANMATARIHI : null, 
     GUN : 1 
    } 
    var request = $http({ 
     method: 'POST', 
     url: url, 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
     data: checkdata 
    }); 
    return request; 
    } 
    return CityService; 
}]); 

そしてここでは、私のWeb APIです:

 [HttpPost] 
     [ResponseType(typeof(TBLCHECKLIST))] 
     public IHttpActionResult PostTBLCHECKLIST(TBLCHECKLIST tBLCHECKLIST) 
     { 
      if (!ModelState.IsValid) 
      { 
       return BadRequest(ModelState); 
      } 

      tBLCHECKLIST.KAYITTARIHI = DateTime.Now; 
      db.TBLCHECKLISTs.Add(tBLCHECKLIST); 
      db.SaveChanges(); 

      return CreatedAtRoute("DefaultApi", new { id = tBLCHECKLIST.TABLEID }, tBLCHECKLIST); 
     } 

私はこの例外を取得送信しようとすると:

enter image description here

私が気付いて、後私のチェックデータは決してウェブAPIに来ないので、私はその例外をとる。どうしてか分かりません。

これらは私が送っ件のデータではありません。

enter image description here

私はポスト要求が、何の異なるバージョンを試してみました。私がPostManでデータを送信しようとすると、動作し、データベースにデータを挿入できます。しかし、なぜ私は自分のアプリケーションでそれを行うことができないのですか?誰か助けてくれますか?

+0

私はあなたのAPIでクロスドメインヘッダーを許可していますか? – sam

+0

はいクロスドメインヘッダーを許可しています –

答えて

0

私は、これは問題であるべきだと思う:必ずあなたのcheckdataプロパティが一致するよう、また

[HttpPost] 
[ResponseType(typeof(TBLCHECKLIST))] 
public IHttpActionResult PostTBLCHECKLIST([FromBody]TBLCHECKLIST tBLCHECKLIST) 
{ 
    //code here 
} 

return $http.post(url, checkdata); 

そして、あなたのAPIで:

headers: {'Content-Type': 'application/x-www-form-urlencoded'} 

はこれを試してみてくださいTBLCHECKLIST C#タイプのもの

+0

XMLHttpRequestがhttp:// localhost:50367/api/TBLCHECKLISTsをロードできません。プリフライトの応答に無効なHTTPステータスコード405 –

+0

application/x-www-form-urlencodedの代わりにapplication/jsonに設定してください。また、Web APIのメソッドオプションを許可していることを確認してください。 – jpgrassi

関連する問題