[英]How to set $http headers on AngularJS?
我正在嘗試為$ http創建基本身份驗證,並且為此我嘗試設置標頭,但我不能這樣做。
我該怎么辦?
試試這個。
var app = angular.module("starter");
app.service("UserLoginAPI", function($http, AppConstants, Base64){
this.doLogin = function(){
var _url = AppConstants.webServiceUrl + "/users/testaWS.json";
var _authdata = Base64.encode('admin' + ':' + 'admin');
var _condigHeader = {
headers: {
'Authorization': 'Basic ' + _authdata,
'Accept': 'application/json; charset=utf-8',
'Content-Type': 'application/json; charset=utf-8'
}
};
return $http.post(_url, _condigHeader);
};
});
例外
OPTIONS http://192.168.1.105/GuairaFoods/users/testaWS.json (anonymous function) @ ionic.bundle.js:19346sendReq @ ionic.bundle.js:19165serverRequest @ ionic.bundle.js:18877processQueue @ ionic.bundle.js:23399(anonymous function) @ ionic.bundle.js:23415Scope.$eval @ ionic.bundle.js:24678Scope.$digest @ ionic.bundle.js:24489Scope.$apply @ ionic.bundle.js:24783(anonymous function) @ ionic.bundle.js:57605eventHandler @ ionic.bundle.js:12103triggerMouseEvent @ ionic.bundle.js:2870tapClick @ ionic.bundle.js:2859tapMouseUp @ ionic.bundle.js:2932
(index):1 XMLHttpRequest cannot load http://192.168.1.105/GuairaFoods/users/testaWS.json. Response for preflight has invalid HTTP status code 401
VM455:3 XHR Loaded (testaWS.json - 401 Unauthorized - 330.49999992363155ms - 0B)
不要將headers
對象包裝在_condigHeader
對象中。
var headers = {
'Authorization': 'Basic ' + _authdata,
'Accept': 'application/json; charset=utf-8',
'Content-Type': 'application/json; charset=utf-8'
}
return $http.post(_url, headers);
解決了問題。
是的
var app = angular.module("starter");
app.service("UserLoginAPI", function($http, AppConstants, Base64){
this.doLogin = function(){
var _url = AppConstants.webServiceUrl + "/users/testaWS.json?callback=JSON_CALLBACK";
var _authdata = Base64.encode('admin' + ':' + 'admin');
var _headers = {
'Authorization': 'Basic ' + _authdata,
'Accept': 'application/json; charset=utf-8',
'Content-Type': 'application/json; charset=utf-8'
};
return $http({
method: 'jsonp',
url: _url,
responseType: "json",
headers: _headers
});
};
});
而且我不得不在我的網絡服務中更改函數以獲取jsonp的回調。
public function testaWS(){
$this->autoRender = false;
$retorno = array("data"=>"ok");
return $_GET['callback'] . '('.json_encode($retorno).')';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.