gpt4 book ai didi

jquery $.ajax 自定义 http header 问题

转载 作者:行者123 更新时间:2023-12-03 22:39:08 25 4
gpt4 key购买 nike

我正在查询一个使用自定义 http header 进行身份验证的 REST Web 服务。

如果我在没有 header 的情况下执行 POST,我会收到预期的错误,但是当我添加 header 时,我会收到 404 错误,而不是我实际需要的错误。

这是我的代码

$.ajax({
type: 'POST',
url: 'http://server.com/service',
beforeSend: function (xhr) { xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE') },
success: function(data) {
alert('success.');
}
});

这是 Firebug header 输出:

OPTIONS /service HTTP/1.1 Host: server.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive Origin: null Access-Control-Request-Method: POST Access-Control-Request-Headers: custom-header-key Pragma: no-cache Cache-Control: no-cache

以及使用海报执行帖子时的 smae header ,这会返回所需的结果。

POST /service HTTP/1.1 Host: server.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive CUSTOM-HEADER-KEY: CUSTOM-HEADER-VALUE Pragma: no-cache Cache-Control: no-cache Content-Length: 0

差异非常明显,但我不知道我在 jquery 代码中做错了什么。

有人可以帮我吗?

最佳答案

在跨域请求中,如果服务不允许 header ,浏览器将简单地将其删除

首先,浏览器将进行 OPTION 调用来检查允许的(来源、 header 、方法)

在您的服务配置中,您必须允许 header 才能使用将其发送到服务器

Access-Control-Allow-Headers: YOUR_HEADER_NAME

关于jquery $.ajax 自定义 http header 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538319/

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