[英]Send HTTP Header Requests with AngularJS
我正在尝试将HTTP GET请求发送到远程服务器,并在HTML页面上使用响应。 以下是project / js / script.js页面
var app = angular.module('app', ['ngResource']);
var config = {
url:"www.myWebsite.com/discover",
headers: {
"X-Object-Header" : "123456789 ",
"Content-Type": "application/json"
}
};
app.controller('discoverObjectCtrl', ['$scope', '$http', function (scope, http) {
console.log('Everything Works!');
http.get("/object", config).success(function (data) {
scope.object = data;
});
console.log(scope.object);
}]);
在我的响应标题中,这就是我得到的
远程地址 :127.0.0.1:63342
请求网址 :localhost:63342 / object
请求方法 :GET
状态码 :404找不到
请求标题
接受 :application / json,text / plain, /
接受编码 :gzip,deflate,sdch
接受语言 :en-US,en; q = 0.8
缓存控制 :max-age = 0
连接方式 :保持活动
主机 :localhost:63342
的Referer:本地主机:63342 / DemoSP / index.html的
用户代理 :Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,like Gecko)Chrome / 36.0.1985.125 Safari / 537.36
X-Object-Header :123456789
我想做的是发送带有自定义URL的http请求。 例如,我希望控制台标题显示
要求网址 :www.myWebsite.com/discover/object
并不是
要求网址 :localhost:63342 / project / www.myWebsite.com / discover / object
请对此我需要帮助。 谢谢
您应该这样配置get
:
$http.get("www.myWebsite.com/discover/object", {
headers: {
"X-Object-Header" : "123456789",
"Content-Type": "application/json"
}
}).success(...);
但是您会遇到CORS问题,因为请求的域与当前脚本所在的域不同。 您可能需要启用通过Access-Control-Allow-Origin标头在服务器环境中查询www.myWebsite.com
,或者如果您可以更改www.myWebsite.com/discover/object
端点,然后将其www.myWebsite.com/discover/object
JSONP端点您可以通过$http.jsonp
查询。
另请参阅此答案 。
您实际上正在做的是跨域Ajax调用。 您可以选择一些典型的解决方案:
使用“ Access-Control-Allow-Origin”标头
以下是一些可以帮助您的链接:
HttpIntercepter可以用于添加公共标头和公共参数。
将此添加到您的配置中:
$httpProvider.interceptors.push('UtimfHttpIntercepter');
并创建名称为UtimfHttpIntercepter
工厂
angular.module('utimf.services', ['ngResource', 'ng.deviceDetector'])
.factory('UtimfHttpIntercepter', UtimfHttpIntercepter)
UtimfHttpIntercepter.$inject = ['$q', '$cookieStore', '$location', '$timeout', '$rootScope', 'appConfig', 'Encrypt', 'appText', 'myDevice'];
function UtimfHttpIntercepter($q, $cookieStore, $location, $timeout, $rootScope, appConfig, Encrypt, appText, myDevice) {
var authFactory = {};
var _request = function (config) {
config.headers = config.headers || {}; // change/add hearders
config.data = config.data || {}; // change/add post data
config.params = config.params || {}; //change/add querystring params
return config || $q.when(config);
}
var _requestError = function (rejection) {
// handle if there is a request error
return $q.reject(rejection);
}
var _response = function(response){
// handle your response
return response || $q.when(response);
}
var _responseError = function (rejection) {
// handle if there is a request error
return $q.reject(rejection);
}
authFactory.request = _request;
authFactory.requestError = _requestError;
authFactory.response = _response;
authFactory.responseError = _responseError;
return authFactory;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.