配置预检频道

时间:2018-01-30 14:16:38

标签: javascript amazon-ec2 coldfusion cors

在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设置这些实例,我需要在我的服务器上设置它们吗?我确实不确定,非常困惑。您可以向我提供的任何解释或进一步阅读将不胜感激。

0 个答案:

没有答案