Aqueduct 不响应 Flutter get 请求

Aqueduct not give response Flutter get request

您好,我正在制作一个使用 http 框架并发送我的服务器以获取请求的应用程序。我将 Aqueduct 用于后端服务,当我使用 POSTMAN 发送 'get request' 时它正在工作,但是当我使用我的应用程序发送获取请求时,Aqueduct 在控制台上给出了一条消息:

[INFO] aqueduct: OPTIONS /workers 8ms 403 {user-agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/IP_ADRESS Safari/537.36\nconnection : keep-alive\naccept : */*\naccept-language : en-US,en;q=0.9\nsec-fetch-mode : cors\naccept-encoding : gzip, deflate, br\norigin : http://localhost:58095\nhost : localhost:8888\nsec-fetch-site : same-site\naccess-control-request-headers : authorization,companymail,content-type\naccess-control-request-method : GET\nreferer : http://localhost:58095/\n}   

当我使用 postman 发送 get 请求时,一切正常,服务器给出响应:

[INFO] aqueduct: GET /workers 92ms 200   

我的邮递员Headers:

companyMail:deneme1234
Content-Type:application/json
Authorization:Basic ZGVuZW1lMTIzNDpkZW5lbWUxMjM0

我的 flutter 应用 headers:

final Map<String, String> headers = {"Content-Type": "application/json"};  
String basicAuth = 'Basic ' + base64Encode(utf8.encode('$mail:$password'));
  headers['authorization'] = basicAuth;
  headers['companyMail'] = companyMail;
return headers

我的 flutter 应用获取请求:

   final response = http.get(baseUrl+'workers',headers: await authHeader());

我终于找到了解决方案 :) 它是关于 CorsPolicy 的。如果你想发送特殊的 header 请求,你必须检查你的服务器可接受的 headers。在 Aqueduct 中,您可以像这样编辑允许的请求 header:

CORSPolicy.defaultPolicy.allowedRequestHeaders = ['company-mail','content-type','authorization'];