Мне очень тяжело начинать работу с функциями Google Cloud.В частности, создание простого HTTP-запроса POST.
Облачная функция выглядит следующим образом:
const express = require('express')
const errorhandler = require('errorhandler')
const logger = require('morgan')
const bodyParser = require('body-parser')
const cors = require('cors')
let app = express()
app.use(bodyParser.json())
app.use(logger('dev'))
app.use(errorhandler())
app.use(cors({origin: true}))
exports.helloWorld = (req, res) => {
// Example input: {"message": "Hello!"}
if (req.body.message === undefined) {
// This is an error case, as "message" is required.
res.status(400).send('No message defined!');
} else {
// Everything is okay.
console.log(req.body.message);
res.status(200).send('Success: ' + req.body.message);
}
};
Я делаю HTTP-запрос из файла HTML простой формы и файла JSчто выглядит следующим образом:
const sendMessage = () => {
const input = {
"message" : document.getElementById('message').value
}
fetch('https://google-cloud-url-endpoint', {
method: 'POST',
headers: { "Content-Type": "application/json"},
body: JSON.stringify(input)
}).then(function(response) {
return response.json()
}).then(function(data) {
})
}
После ввода сообщения в HTML-форме консоль сообщает:
ОПЦИИ https://https://google-cloud-url-endpoint 400 () index.html: 1 Не удалосьload https://google -cloud-url-endpoint : Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Происхождение 'http://127.0.0.1:53922' поэтому не разрешено.Ответ имел HTTP-код состояния 400. Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.index.html: 1 Uncaught (в обещании) TypeError: Не удалось получить
При проверке ответа сети я вижу:
Сообщение не определено!
Итак, из чего японимаю, это делает запрос и приносит ответ от функции.Мой вопрос: почему не удалось отправить «сообщение» функции?