在flutter web上制作超文本传输协议请求失败。我使用超文本传输协议包进行请求,这里是我的代码:
http.post(
'http://x.x.x.x:5000',
headers: <String, String>{
"Access-Control-Allow-Origin": "*", // Required for CORS support to work
"Access-Control-Allow-Credentials":
'true', // Required for cookies, authorization headers with HTTPS
"Access-Control-Allow-Headers":
"Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token",
"Access-Control-Allow-Methods": "POST, OPTIONS"
},
body: jsonEncode(<String, String>{
'title': 'title',
}),
)
dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch. dart 906:28获取当前包/超文本传输协议/src/browser_client.dart 84:22 dart-sdk/lib/async/zone.dart 1450:54 runUnary dart-sdk/lib/async/future_impl.dart 143:18 handleValue dart-sdk/lib/async/future_impl.dart 696:44 handleValueCallback
注意:在chrome Dev工具中,我可以看到2个请求,一个是我的帖子请求,另一个我不知道。另一个总是成功的,状态为200,登录在服务器上,但那不是我的帖子请求。
在浪费了几个小时寻找解决方案后,我发现我还没有在服务器端实现CORS。我正在使用Flask服务器并添加CORS很快解决了这个问题。
这是一个服务器端问题。
EnableCORS在CPanel到启用CORS在你的主机帐户.你可以启用它通过添加以下行在. htaccess文件在你的主机帐户。