gpt4 book ai didi

javascript - 使用 angular.js 向 HTTP 请求添加自定义 header

转载 作者:IT王子 更新时间:2023-10-29 02:44:50 24 4
gpt4 key购买 nike

我是 angular.js 的新手,我正在尝试向请求添加一些 header :

   var config = {headers: {
'Authorization': 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==',
'Accept': 'application/json;odata=verbose'
}
};

$http.get('https://www.example.com/ApplicationData.svc/Malls(1)/Retailers', config).success(successCallback).error(errorCallback);

我查看了所有文档,在我看来这应该是正确的。

当我在 $http.get 中使用本地文件作为 URL 时,我在 Chrome 的网络选项卡上看到以下 HTTP 请求:

GET /app/data/offers.json HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: max-age=0
If-None-Match: "0f0abc9026855b5938797878a03e6889"
Authorization: Basic Y2hhZHN0b25lbWFuOkNoYW5nZV9tZQ==
Accept: application/json;odata=verbose
X-Requested-With: XMLHttpRequest
If-Modified-Since: Sun, 24 Mar 2013 15:58:55 GMT
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
X-Testing: Testing
Referer: http://www.example.com/app/index.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

如您所见,两个 header 均已正确添加。但是,当我将 URL 更改为上面 $http.get 中显示的 URL 时(除了使用真实地址,而不是 example.com),然后我得到:

OPTIONS /ApplicationData.svc/Malls(1) HTTP/1.1
Host: www.datahost.net
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mpon.site44.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Access-Control-Request-Headers: accept, origin, x-requested-with, authorization, x-testing
Accept: */*
Referer: http://mpon.site44.com/app/index.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

两者在代码上的唯一区别是,第一个 URL 是本地文件,第二个 URL 是远程服务器。如果您查看第二个 Request header ,则没有 Authentication header ,并且 Accept 似乎使用默认值而不是指定的 header 。此外,第一行现在显示的是 OPTIONS 而不是 GET(虽然 Access-Control-Request-MethodGET ).

知道上面的代码有什么问题吗,或者当不使用本地文件作为数据源时如何获取包含的附加 header ?

最佳答案

我拿走了你所有的,并添加了另一个 X-Testing header

var config = {headers:  {
'Authorization': 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==',
'Accept': 'application/json;odata=verbose',
"X-Testing" : "testing"
}
};

$http.get("/test", config);

在 Chrome 网络选项卡中,我看到它们正在发送。

GET /test HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Accept: application/json;odata=verbose
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Authorization: Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==
X-Testing: testing
Referer: http://localhost:3000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

您不是从浏览器或服务器上看到它们吗?尝试浏览器工具或调试代理,看看发送的是什么。

关于javascript - 使用 angular.js 向 HTTP 请求添加自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com