Dart抛出没有'Access-Control-Allow-Origin'标题错误,即使它存在

时间:2018-04-19 03:10:39

标签: http go xmlhttprequest http-headers

我有一个基本的go API服务器,它从数据库中提供“作业”,并在JSON响应中返回,并将Access-Control-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")
}
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);}
}

在postman上,我可以访问它,也没有Access-Control-Allow-Origin标题的问题。但是,当我从应用程序调用getJob(1)函数时,chrome会抛出错误:

XMLHttpRequest无法加载http://127.0.0.1:9000/job/1/。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:8080”访问。

关于我在这里缺少的任何想法?最有可能的一切。

0 个答案:

没有答案
相关问题