Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中设置抓取头时,哪种做法更好?_Javascript_Http Headers_Fetch Api - Fatal编程技术网

在Javascript中设置抓取头时,哪种做法更好?

在Javascript中设置抓取头时,哪种做法更好?,javascript,http-headers,fetch-api,Javascript,Http Headers,Fetch Api,使用新的headers对象设置获取的头有什么区别,如下所示 const headers = new Headers() headers.set('User','Bob') 而不是用更少的代码分配所需的头,并且不使用新的头类 const headers = { User: 'Bob'} 在JavaScript中执行获取时。 如果两者都获得相似的结果,那么在获取数据时哪一个是最佳做法?Headers对象的行为类似于Map,但关键区别在于header键不区分大小写 标题: var headers

使用新的headers对象设置获取的头有什么区别,如下所示

const headers = new Headers()
headers.set('User','Bob')
而不是用更少的代码分配所需的头,并且不使用新的头类

const headers = { User: 'Bob'}
在JavaScript中执行获取时。 如果两者都获得相似的结果,那么在获取数据时哪一个是最佳做法?

Headers对象的行为类似于Map,但关键区别在于header键不区分大小写

标题:

var headers = new Headers();

headers.set('CONTENT-tYpE', 'text/html');

console.log(headers.get('content-type')); // text/html
地图:

对象:

var headers = {};

headers['CONTENT-tYpE'] = 'text/html';

console.log(headers['content-type']); // undefined

当传递到fetch或http请求时,所有头名称都被规范化,而不管数据类型如何

我已经厌倦了人们试图为JavaScript中的所有内容定义一个单一的最佳实践。这里的答案是,就fetchapi而言,没有更好的方法

根据调用fetch之前所做的操作,literal对象或header实例可能会更好。例如,从JSON配置获取硬编码的头,实例化头是浪费代码;另一方面,如果您需要编写一些逻辑来生成标头并选择要包含的标头,则标头具有更明确且不区分大小写的方法,即更安全的方法


但这只是我的观点,我认为这些都是明确的例子。我敢肯定,有人会建议总是使用literals,因为他们想要不变性,也有人会说header更具表现力和更好的类型。不管是哪种方式,这都不是StackOverflow的目的。

您可能已经注意到,您的获取在任何一种方式下都有效。Literal和Header的实例之间存在差异实例具有有用的方法,但您为什么关心呢?为什么这是一个问题?我很好奇哪种方式是最佳实践,因为人们可以互换使用这两种方式,所以我想问一下。我还认为其他新开发人员将来可能会发现这很有用,尽管有些人认为这是一个愚蠢的问题。我也认为我很困惑为什么这一点被否决了。在学习这些知识时,有时可以从较高的层次上进行概述,以确定其重要性。在JS中,您可以用不同的方式创建相同的东西,但更重要的是,头只是一个简单的对象谁说了关于最佳实践或更好的实践?OP询问了两段不同代码之间的差异。OP在评论中澄清了他们想要最佳实践。我不是在编造。另一个细微的区别是头有一个.append方法,使用该方法可以为同一个头设置多个值,而不能使用映射
var headers = {};

headers['CONTENT-tYpE'] = 'text/html';

console.log(headers['content-type']); // undefined