2017-06-14 11 views
0

ちょうど角度を使って私の雲に接続しようとしています。最初の投稿が成功し、最初のgetメソッドでクラウドからドキュメント/ビューを取得できました。純粋な角雲の接続

しかし、私は連続したポストメソッドを実行すると、401の不正なエラーメッセージが表示されます。誰かが私がここで何をしているのか私に説明してもらえますか?私は、角度とcloudant(RESTfulなアーチ)と初心者あなたのコード内の

var app = angular.module('myApp', []); 
const ACCOUNTNAME = 'my acc'; 
const APIKEY = 'my key'; 
const APIPASSWORD = 'my pass'; 
const DATABASE = 'my db'; 
var cloudantDoc = 'link of document to update'; 

app.controller('tutorialCtrl', function($scope, $http) { 
//Authentication header settings 
var req = { 
    method: 'POST', 
    url: 'https://'+ACCOUNTNAME+'.cloudant.com/_session', 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    data: 'name='+APIKEY+'&password='+APIPASSWORD, 
    withCredentials: true 
} 

$http(req).then(function(result){ 
        //Grab data 
        req = { 
         method: 'GET', 
         url: 'https://'+ACCOUNTNAME+'.cloudant.com/'+DATABASE+'/_design/AllClients/_view/AllClients', 
         withCredentials: true 

        } 

        $http(req).then(function(result){ 
             $scope.tableData = result.data; 
             console.log(result); 
            }, 
            function(){ 
             console.log("Failed at grabbing data"); 
            }); 

       }, 
       function(){ 
        console.log('Failed at authenticating'); 
       } 
); 

$scope.revisionNumNews; 

    $http.post(cloudantDoc, JSON.stringify({"_id": "CLient1", "Client_Name":"ABC", "_rev": ""})).success(function(response){ 
       revisionNumNews = response.rev; 

      }); 

答えて

0

あなたは、既存のドキュメントを更新しようとしている場合は、の代わりにPUTリクエストを行う必要があります、var cloudantDoc = 'link of document to update'を持っていて詳細に返信してください役職。いずれの場合も、お申し込みには{withCredentials: true}オプションを含める必要があります。

あなたはこのような何かにあなたのPOSTリクエストを変更してみてください新しいドキュメントを作成しようとしている場合:

var databaseUrl = 'https://' + ACCOUNTNAME + '.cloudant.com/' + DATABASE 

$http.post(databaseUrl, {'_id':'CLient1', 'Client_Name':'ABC'}, {withCredentials: true}) 
    .then(function(response) { 
     $scope.revisionNumNews = response.rev 
    }) 

しかし、あなたはあなたがPUTリクエストを行う必要があります既存のドキュメントを更新しようとしている場合と、最新の_revも含まれています。

var databaseUrl = 'https://' + ACCOUNTNAME + '.cloudant.com/' + DATABASE 

$http.put(databaseUrl + '/' + cloudantDocId, cloudantDoc, {withCredentials: true}) 
    .then(function(response) { 
     $scope.revisionNumNews = response.rev 
    }) 
cloudantDocIdは、文書の文書IDを更新取得され

cloudantDoc

(最新 _rev付き)更新されたドキュメントオブジェクトである:それはこのようになります
関連する問題