Flutter Web:如何发送不记名令牌?
Flutter Web : How to send bearer token?
我有一个 ASP.Net Core web api 接受不记名令牌 (jwt),我使用 Android 模拟器在我的 Flutter 中发送这个令牌,此代码没有任何问题:
final response = await get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
但是当我在 Chrome 浏览器中 运行 时,api 响应是:405 Method Not Allowed 。
有什么问题吗?
更新 :
根据@anirudh 的评论,我在我的网站中启用了 CROS Api,问题已经改变。现在响应是:204 No Content
String token = await Candidate().getToken();
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
print('Token : ${token}');
print(response);
并且做 http.get 而不仅仅是 get
import 'package:http/http.dart' as http;
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
感谢@anirudh 我解决了我的问题
首先定义一个变量:
readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
然后将这些代码写在我的api中的ConfigureServices中:
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins("http://localhost") //Or my flutter web host
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed((host) => true);
});
});
配置中的这一行:
app.UseCors(MyAllowSpecificOrigins);
我有一个 ASP.Net Core web api 接受不记名令牌 (jwt),我使用 Android 模拟器在我的 Flutter 中发送这个令牌,此代码没有任何问题:
final response = await get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
但是当我在 Chrome 浏览器中 运行 时,api 响应是:405 Method Not Allowed 。
有什么问题吗?
更新 :
根据@anirudh 的评论,我在我的网站中启用了 CROS Api,问题已经改变。现在响应是:204 No Content
String token = await Candidate().getToken();
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
print('Token : ${token}');
print(response);
并且做 http.get 而不仅仅是 get
import 'package:http/http.dart' as http;
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
感谢@anirudh 我解决了我的问题
首先定义一个变量:
readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
然后将这些代码写在我的api中的ConfigureServices中:
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins("http://localhost") //Or my flutter web host
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed((host) => true);
});
});
配置中的这一行:
app.UseCors(MyAllowSpecificOrigins);