在POST到外部API时,我遇到了一个问题。错误总是:
Reason: missing token ‘content-type’ in CORS header ‘Access-Control-Allow-Headers’ from CORS preflight channel
经过一些研究后,我发现预检请求来自我的服务器,并且在发出实际的CORS请求之前,基本上确保一切正常。
所以我开始尝试更改我的Access-Control-Allow-Headers以允许发送Content-Type
标题,但我不知道我在做什么。我不是一个非常自信的后端开发人员,而且我对coldfusion没有信心,基本上把它当作JS和MySQL之间的桥梁而已。
我发现了一些看起来很有前途的文件,即名为web.config
的文件和应用程序根目录中名为crossdomain.xml
的文件。
我首先尝试编辑最初的web.config
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
我编辑到:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Header" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
但这并没有解决问题。我还尝试编辑拼写,以防它区分大小写,但没有运气。
然后我尝试编辑crossdomain.xml
这似乎很有希望,最初是:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
</cross-domain-policy>
所以我尝试将其更改为:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="api.com" headers="Content-type"/>
</cross-domain-policy>
但这也没有做任何事。我担心因为这些是空的规则集,服务器会忽略它们,这意味着必须有一些其他文件,但我已经在服务器上查看随机文件一小时了,可以& #39;找到其他似乎处理COR或Access-Control的东西。
这是一个EC2实例,但根据我的理解,我无法通过AWS设置这些实例,我需要在我的服务器上设置它们吗?我确实不确定,非常困惑。您可以向我提供的任何解释或进一步阅读将不胜感激。