Http Dart不抛出';访问控制允许原点';标题错误,即使它存在
我有一个基本的go API服务器,它从数据库中提供一个“作业”,并在JSON响应中返回,并将访问控制Allow Origin:*添加到头中Http Dart不抛出';访问控制允许原点';标题错误,即使它存在,http,go,xmlhttprequest,http-headers,Http,Go,Xmlhttprequest,Http Headers,我有一个基本的go API服务器,它从数据库中提供一个“作业”,并在JSON响应中返回,并将访问控制Allow Origin:*添加到头中 func GetJob(w http.ResponseWriter, r *http.Request) { job := Job{} db, err = gorm.Open("postgres", connString) if err != nil { panic("Could not connect to the database") } de
func GetJob(w http.ResponseWriter, r *http.Request) {
job := Job{}
db, err = gorm.Open("postgres", connString)
if err != nil {
panic("Could not connect to the database")
}
defer db.Close()
vars := mux.Vars(r)
jobID, err := strconv.Atoi(vars["jobid"])
if err != nil {
panic("can't convert string")
}
db.Debug().Where("id = ?", jobID).First(&job)
w.Header().Set("Access-Control-Allow-Origin", "*")
json.NewEncoder(w).Encode(&job)
}
这是为了阅读我的客户端应用程序,使用角省道编写:
class DataService {
final _headers = {'Content-Type': 'text/plain'};
var jobUrl = 'http://127.0.0.1:9000/job';
final Client _http;
DataService(this._http);
Future<Job> getJob(int id) async {
try{
final response = await _http.get('$jobUrl/$id/');
return new Job.fromJson(_extractData(response));
}
catch (e) {
throw _handleError(e);}
}
类数据服务{
最终_头={'Content-Type':'text/plain'};
var jobUrl=http://127.0.0.1:9000/job';
最终客户端http;
数据服务(this.\u http);
未来getJob(int-id)异步{
试一试{
final response=wait_http.get(“$jobUrl/$id/”);
返回新的Job.fromJson(_extractData(response));
}
捕获(e){
投掷_handleError(e);}
}
在postman上,我也可以访问它,而访问控制Allow Origin头也没有问题。但是,当我从应用程序调用getJob(1)函数时,chrome会抛出一个错误:
无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此不允许访问源“”
关于我在这里遗漏的内容有什么想法吗?很可能是所有内容。
w.Header().Set(“访问控制允许源代码”,r.Header.Get(“源代码”))
。这里根本不涉及Dart。CORS只是服务器和浏览器之间的问题。