Node.js CORS错误,但仅在POST请求时发生,尽管CORS配置(GET无问题)

Node.js CORS错误,但仅在POST请求时发生,尽管CORS配置(GET无问题),node.js,rest,express,cors,Node.js,Rest,Express,Cors,我使用nodejs express服务器。 尽管允许主机,我仍然有一个CORS错误 “请求的服务器上不存在“访问控制允许来源”标头 资源。” 但仅适用于POST端点。“得到”没有问题。 我的客户端浏览器同时允许(GET和POST)端点: 我的服务器:(正在运行) 客户端(9):(在本地主机上运行:4200) 知道为什么它不起作用吗 GET的整个请求/响应: 答复: Referrer Policy: no-referrer-when-downgrade Access-Control-Allow-O

我使用nodejs express服务器。 尽管允许主机,我仍然有一个CORS错误

“请求的服务器上不存在“访问控制允许来源”标头 资源。”

但仅适用于POST端点。“得到”没有问题。 我的客户端浏览器同时允许(GET和POST)端点:

我的服务器:(正在运行)

客户端(9):(在本地主机上运行:4200)

知道为什么它不起作用吗

GET的整个请求/响应:

答复:

Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Origin: http://localhost:4200
Content-Length: 2
Content-Type: application/json; charset=utf-8
Date: Sun, 14 Jun 2020 14:42:35 GMT
Etag: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
Server: Cowboy
Vary: Origin
Via: 1.1 vegur
X-Powered-By: Express
Allow: POST
Connection: keep-alive
Content-Length: 4
Content-Type: text/html; charset=utf-8
Date: Sun, 14 Jun 2020 14:30:00 GMT
Etag: W/"4-Yf+Bwwqjx254r+pisuO9HfpJ6FQ"
Server: Cowboy
Via: 1.1 vegur
X-Powered-By: Express
请求:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en,en-US;q=0.9,fr-FR;q=0.8,fr;q=0.7
Connection: keep-alive
DNT: 1
Host: serverUrl
If-None-Match: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
Origin: http://localhost:4200
Referer: http://localhost:4200/menu
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en,en-US;q=0.9,fr-FR;q=0.8,fr;q=0.7
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: POST
Connection: keep-alive
Host: serverUrl
Origin: http://localhost:4200
Referer: http://localhost:4200/menu
Sec-Fetch-Mode: cors
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
(失败)职位的全部回复/请求 答复:

Allow: POST
Connection: keep-alive
Content-Length: 4
Content-Type: text/html; charset=utf-8
Date: Sun, 14 Jun 2020 14:30:00 GMT
Etag: W/"4-Yf+Bwwqjx254r+pisuO9HfpJ6FQ"
Server: Cowboy
Via: 1.1 vegur
X-Powered-By: Express
请求:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en,en-US;q=0.9,fr-FR;q=0.8,fr;q=0.7
Connection: keep-alive
DNT: 1
Host: serverUrl
If-None-Match: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
Origin: http://localhost:4200
Referer: http://localhost:4200/menu
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en,en-US;q=0.9,fr-FR;q=0.8,fr;q=0.7
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: POST
Connection: keep-alive
Host: serverUrl
Origin: http://localhost:4200
Referer: http://localhost:4200/menu
Sec-Fetch-Mode: cors
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
尝试为您的路线启用

当需要路由来处理所谓的复杂CORS操作时,必须添加选项路由处理程序。浏览器发送一个额外的请求,一个选项请求

为什么这个特别复杂?因为网络令人毛骨悚然

添加此路由处理程序。就在你的邮件处理之前是一个很好的地方

router.options('/score', cors())

真管用,谢谢!但我觉得它很难看。有没有什么方法可以自动完成,而不必添加路由器。选择?