1
我有Restfull API(localhost:8180),它具有安全身份驗證。使用Angular JS http(或其他服務)我需要登錄到該服務器並從localhost獲取我的數據:8180/api/version /?1(這只是示例)請在下面找到我的代碼。使用angularjs連接遠程服務器
//configure file
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.withCredentials = true;
}]);
//setting cookie
app.run(['$http', '$cookies', function($http, $cookies) {
$http.defaults.headers.post['JSESSIONID'] = $cookies.JSESSIONID;
}]);
// My Controller
$http({
url:'http://localhost:8180',
method:'POST',
data: {
username:'adminadmin',
password:'passpass'
},
headers: {
"Access-Control-Allow-Headers": "*",
"Access-Control-Allow-Credentials": true,
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"Accept": "*/*",
'Authorization': 'Basic adminadmin:passpass' // I guess its wrong
}
})
.success (function(){
console.log("Success");
//Need to call my API here
})
.error(function(data, status, headers, config){
console.log("Failed");
});
在這裏,我沒有得到任何訪問控制允許來源和產地空 錯誤。如果成功,我需要在使用get或post的成功方法的 內調用localhost:8180/api/version?1。這裏我的服務器是 localhost:9596。我需要從9596主機調用8180主機,並將 數據導入9596主機。
讀https://開頭en.wikipedia.org/wiki/Cross-origin_resource_sharing –
您不需要通過標頭設置原始標題,將它們設置在您的API中。基本上來源拒絕非法請求,所以ID不使用*無論如何..也不需要像這樣的授權標題,如果您通過POST發送dat ... –
當最終用戶的瀏覽器尋址時'localhost'不會有相同的含義;你確定這是你想要的嗎? – Aaron