Настройки заголовка ответа не работают в случае ошибки
Функцияctx.Response.Header.Set не работает в случае ошибки.
Пожалуйста, проверьте код ниже,
package main
import "fmt"
import "github.com/valyala/fasthttp"
func main() {
requestHandler := func(ctx *fasthttp.RequestCtx) {
ctx.Response.Header.Set("Access-Control-Allow-Origin", "*")
switch string(ctx.Path()) {
case "/foo":
fmt.Fprintf(ctx, "Success result")
case "/bar":
ctx.Error("Unsupported path", fasthttp.StatusNotFound)
}
}
fasthttp.ListenAndServe(":8080", requestHandler)
}
Заголовок ответа URL-адреса / foo:
Сервер: fasthttp Дата: Пн, 16 апреля 2018 04:05:10 GMT
Тип контента: текстовый / простой; кодировка = UTF-8
Длина контента: 14
Access-Control-Allow-Origin: *
Но заголовок ответа /bar,
Сервер: fasthttp
Дата: пн, 16 апреля 2018 04:05:50 GMT
Тип контента: текстовый / простой; кодировка = UTF-8
Длина контента: 16
Заголовок Access-Control-Allow-Origin не применяется. Я что-то пропустил здесь?
0 ответов
Метод
ctx.Error
намеренно очищает заголовки:
// ...
// Warning: this will reset the response headers and body already set!
func (ctx *RequestCtx) Error(msg string, statusCode int) {...}
Решение - использовать другие методы:
ctx.SetContentType("text/plain")
ctx.SetStatusCode(404)
ctx.SetBodyString("Unsupported path")