Iis 选项后的下一步/200OK

Iis 选项后的下一步/200OK,iis,cors,aurelia-fetch-client,Iis,Cors,Aurelia Fetch Client,Aurelia SPA对不同的源服务器使用fetch。发送飞行前选项请求,由于服务器配置为响应,因此响应为200 OK 但这就是所发生的一切 我必须补充什么才能让剩下的事情发生 这是请求 this.http.fetch(this.LabelServiceUrl, { method: "post", mode: "cors", headers: { "Content-type": "application/json; charset=UTF-8" }

Aurelia SPA对不同的源服务器使用fetch。发送飞行前选项请求,由于服务器配置为响应,因此响应为200 OK

但这就是所发生的一切

我必须补充什么才能让剩下的事情发生

这是请求

  this.http.fetch(this.LabelServiceUrl, {
    method: "post",
    mode: "cors",
    headers: {
      "Content-type": "application/json; charset=UTF-8"
    },
    body: json({
      printer: this.LabelPrinter,
      html: html
    })
  }).then(json)
    .then(response => {
      console.log('Success:', JSON.stringify(response))
    })
    .catch(error => {
      console.error('Error:', error)
    });
IIS由web.config配置

<system.webServer>
 <httpProtocol>
   <customHeaders>
     <add name="Access-Control-Allow-Origin" value="*" />
   </customHeaders>
 </httpProtocol>
</system.webServer>

您不必做任何特殊的事情,神奇的事情就会发生,然后请求会以正常的响应发送

如果这没有发生,就像在我的例子中一样,这是因为代码中的某些内容不符合犹太教,但是错误在握手过程中丢失了,一切都停止了


在web服务中放置一个测试页,这样就可以在不使用CORS的情况下运行web api。解决错误后,请使用应用程序再次测试。在我的例子中,问题是从一个post接收复杂的参数到一个对象图,这是一个长期困扰我的问题;我的类不适合WebAPI魔术解析。

您的system.webServer还需要设置一个值为“Content type”的访问控制允许标头响应标头。这是因为您的请求正在设置内容类型头。看见您的配置还需要设置一个值为'POST'的访问控制允许方法响应头。见。看看