1
に渡す前に、応答ヘッダを削除している状況である。AngularJsは、ここに私のコントローラ
私はアイテムを作成するために、サーバにPOSTリクエストを作り、それが中に新しいアイテムの場所で「201が作成した」を返すことを期待ロケーションヘッダー。ここで2回目のリクエストを行い、完全なアイテムデータを取得します。
これらは、サーバから送信されたレスポンスヘッダです:
Status Code: 201 Created
Connection: keep-alive
Content-Length: 17
Content-Type: application/json
Date: Thu, 22 Sep 2016 08:52:20 GMT
Location: /tasks/4
access-control-allow-headers: Content-type, Cache-Control, Keep-Alive, Location
access-control-allow-methods: GET, POST, PUT, DEL, OPTIONS
access-control-allow-origin: *
access-control-expose-headers: Content-type, Cache-Control, Keep-Alive, Location
その後、私は私のコントローラからLocationヘッダを取得しようとすると、私が手に:私のFirefoxのコンソールで
// console.log(response.headers)
[content-type,] { content-type="application/json; charset=utf-8"}
、私がしようとするとエラーが発生します:
response.headers['Location']
注:私は角度1.5.8を使用しています$ HTTPS
ための「約束」バリアントをmmendedここに私のコントローラのコードの抜粋です:
app.controller('NewTaskCtrl', function($scope, $http){
$scope.taskName = null
$scope.createTask = function(){
var data=JSON.stringify({ Name: $scope.taskName})
$http.post('http://192.168.1.129:9999/api/tasks',data)
.then(
function(response){
// error Here => console.log('Received Headers', response.headers)
console.log('Received Headers', response.headers())
// Error here => $http.get('http://192.168.1.129:9999'+response.headers['Location'])
$http.get('http://192.168.1.129:9999'+response.headers('Location'))
.then (
function(response){
$scope.Tasks.push(response)
},
function(reason){
alert("Unexpected Error Ocurred:\n"+JSON.stringify(reason))
}
)
},
function(reason){
alert("Unexpected Error Ocurred:\n"+JSON.stringify(reason))
}
)
}
})
私はヘッダを失うとどのように私はそれらを得ることができますよ理由の任意のアイデア?
EDIT。私は、問題のある行をコメントし、その場所に正しいを入れて、レコードの
私は今は愚かだと感じます。とにかく、あなたの時間とあなたの答えに感謝のたくさんの – mtsdev