GoLang:为文件设置标头为null://到http://请求不起作用

时间:2016-03-13 04:39:55

标签: go header server cors local

This answer关于静态到静态(file:// - > file://)声明可以使用网络服务器(http://)将文件提供给本地静态页面(文件:/ /)没有违反CORS。 this answer指出,当从网络服务器向静态页面发送数据时,必须使用null的标头。但是下面两条线都没有工作,所以我该怎么办呢?

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Add("Access-Control-Allow-Origin", nil) //this line
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

返回错误./main.go:42: cannot use nil as type string in argument to w.Header().Add

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Add("Access-Control-Allow-Origin", "")
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

这会编译但会抛出客户端错误:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/aardvark/posts. (Reason: CORS header 'Access-Control-Allow-Origin' missing)

1 个答案:

答案 0 :(得分:2)

在写完这个问题之后,我想到最后一件事就是绝望,并且它起作用了。

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Add("Access-Control-Allow-Origin", "null")
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

您应该将字符串设置为"null",而不是空字符串""nil

如果你不认为这个问题属于SO,请发表评论,我会立即将其删除。