如何使用自定义标头

时间:2018-02-09 16:47:54

标签: php cors preflight

我需要一个对此非常有经验并且具有出色知识的人,以便他可以为我提供建议。我会详细解释我的情况。 我写了一个安静的api。这是一个超级庞大的api,我正在使用前端SPA(vue.js,对真实无关紧要)。有很多页面,我做了3-4个不同的api请求(获取不同的信息)。真正让我失望的是飞行前的请求。这意味着如果去一个页面需要4个请求,它不会做4个api请求,它会因为预检OPTIONS请求而产生4 * 2 = 8个api请求。我不需要它,因为我知道cors并且我可以正确设置cors,以便在每次请求之前我不需要预检来检查请求是否安全。 (PREFLIGHT是一种很好的,快速的方法(非最佳),可以消除可能来自不同域名的域名,如果我的域名不知道cors,那么预检会保护我并告诉他我的域名不知道关于科尔斯,他不能向我的来源提出其他来源的请求。我也给了你一些信息。

现在是时候禁用它了,我知道它不需要身体请求,所以它可能很快但我仍然不想要它。我想禁用它。我知道这是可能的。我在stackoverflow中读了很多,人们说你只需要将内容类型设置为text / plain。或其他一些解决方案,但他们说如果你使用自定义标题,那么它是不可能的。我使用自定义标头,以便将身份验证令牌(承载)传递给我的api中间件。必须有办法以某种方式禁用它。

非常感谢您提前和任何建议。

1 个答案:

答案 0 :(得分:2)

好的,第一步是从预检OPTIONS请求返回import csv import matplotlib.pyplot as pl arr = [] arr1 = [] with open('hello.csv') as cs : r = csv.reader(cs , delimiter = ',') i=0 for row in r: if(i>4): arr.append(row[1]) arr1.append(row[0]) i+=1 print len(arr),len(arr1) pl.plot(arr1 , arr) pl.show() 响应头。这指定了OPTIONS响应在浏览器中缓存的时间长度。如果您返回此内容,则浏览器将停止发送预检请求。好吧,它最初会发送一个请求,但之后,它将在浏览器中使用缓存版本。