например есть метод:
async getComments(data = {}) {
const result = await HTTP.post('/', data);
if (result) {
return result;
}
}
ну и сам метод post()
static post(url, data, params) {
return axios({
method: 'POST',
url: backendDomen + url,
data: data,
params: params
}).then(function (value) {
console.log(value)
return value
}).catch(function (reason) {
console.log(reason)
return reason.response
})
}
Запрос OPTIONS возвращает статус 200, хедеры, но запрос POST не идет а в консоли я вижу ошибку
Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:87)
на сервере:
func main() {
gocron.Every(1).Hour().Do(writeInDB)
router := mux.NewRouter()
router.HandleFunc("/", List)
log.Fatal(http.ListenAndServe(":8080", router))
}
хендлер:
func List(response http.ResponseWriter, request *http.Request) {
var results CommentsCollection
response.Header().Set("Content-type", "application/json; charset=UTF-8")
response.Header().Set("Access-Control-Allow-Origin", "http://localhost:3000")
response.Header().Set("Access-Control-Request-Method", "GET, POST")
response.Header().Set("Access-Control-Allow-Headers", "Content-Type")
response.WriteHeader(http.StatusOK)
body, err := ioutil.ReadAll(io.LimitReader(request.Body, 1048576))
if err != nil {
panic(err)
}
if err := request.Body.Close(); err != nil {
panic(err)
}
var dateInterval DateInterval
if err := json.Unmarshal(body, &dateInterval); err != nil {
if err := json.NewEncoder(response).Encode(err); err != nil {
panic(err)
}
}
session, err := mgo.Dial(MongoHost)
if err!= nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
var emptyTime time.Time
var err2 error
if dateInterval.Start != emptyTime && dateInterval.End != emptyTime {
err2 = session.DB("parser").C("comments").Find(bson.M{"date": bson.M{"$gte": dateInterval.Start, "$lte": dateInterval.End}}).All(&results)
} else {
err2 = session.DB("parser").C("comments").Find(nil).All(&results)
}
if err2 != nil {
panic(err2)
}
jsonResponse, err := json.Marshal(results)
if err != nil {
fmt.Println(err)
}
io.WriteString(response, string(jsonResponse))
}
200
у OPTIONS
, означает лишь то, что удалось получить параметры соединения с ресурсом. Они (параметры) могут совпасть с параметрами вашего запроса, могут не совпасть. Если не совпадают, то на основной запрос вы получите что-то вроде: 405 Method Not Allowed
. Но это так, к слову.
А вам надо в catch
, написать console.log(reason.response)
вместо console.log(reason)
. Должно помочь.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, вопрос в следующем, использую Public API wexnz для получения курсов валют
Данные приходят с сервера, но не попадают в state (использовал breakpoint) и поэтому, как я понял, ломается map()Хотелось бы узнать, что я делают не так
Подскажите,пожалуйста,как сослатся на маркер google maps например