В настоящее время схожу с ума с CORS. У меня есть приложение Vue. js, использующее Ax ios для отправки данных в службу Golang (с использованием Gorilla Mux и Handlers). Оба приложения работают на одном хосте.
Вызов Ax ios выглядит следующим образом:
const axios = require('axios');
const options = {
url: 'http://' + window.location.hostname + ':4002',
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: {
MyField1: "MyData1",
MyField2: {
MyField3: "MyData2"
}
}
};
axios(options)
.then(response => {
console.log(response.status);
});
Сервер Golang выглядит следующим образом:
func main() {
headersOk := handlers.AllowedHeaders([]string{"X-Requested-With"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
router := mux.NewRouter()
router.HandleFunc("/", HandleRequest).Methods("POST", "OPTIONS")
log.Fatal(http.ListenAndServe(":4002", handlers.CORS(originsOk, headersOk, methodsOk)(router)))
}
func HandleRequest(w http.ResponseWriter, r *http.Request) {
...
}
Это результат нескольких часов поиска того, как заставить это работать. Я многократно ссылался на этот ответ, и при тестировании с CURL я получаю следующее (наряду с другой избыточной информацией):
< HTTP/1.1 200 OK
< Access-Control-Allow-Headers: X-Requested-With
< Access-Control-Allow-Origin: *
< Date: Sun, 29 Mar 2020 23:32:28 GMT
< Content-Length: 0
Это заставляет меня верить, что все должно работать нормально, но я по-прежнему вижу 403 в Firefox средства просмотра сети и следующее в консоли:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://<ip>:4002/. (Reason: CORS request did not succeed).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://<ip>:4002/. (Reason: CORS request did not succeed).
Error: Network Error
Вся информация, которую я могу найти, заставляет меня поверить, что я не должен видеть эту ошибку в этот момент - любая помощь будет принята с благодарностью.