Как исправить ошибку 400 Bad Request +, заблокированную политикой CORS, при попытке подключения к API esignature.io - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я пытаюсь отправить контракт с помощью API esignature.io. Я получаю из источника "http://localhost: 8000 ", заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin".

Я использую облачные функции Firebase. Ошибка, которую я получаю на этой стороне, - 400 Bad Request. Код ниже

exports.sendContract = functions
  .runWith({
    timeoutSeconds: 10,
    memory: "512MB",
  })
  .region("europe-west1")
  .https.onRequest((req, res) => {
    cors(req, res, async () => {
      const info = await JSON.parse(JSON.stringify(req.body))

      await axios.post("https://[SECRETKEY]:@esignatures.io/api/contracts", info)
        .then((response) => {
          return console.log("succesful")
        })
        .catch((error) => {

          return console.log(error)
        })
    })
  })

На стороне клиента это код, который вызывает функцию облака, а также тело, которое я отправляю

let body = {
            "template_id": "SOME TEMPLATE ID",
            "title": "Lease Agreement",
            "test": "yes",
            "signers": [
                {
                    "name": "jeff",
                    "email": "jeff@gmail.com",
                    "mobile": "SOME NUMBER",
                    "redirect_url": "no",
                    "signing_order": "1",
                    "auto_sign": "no",
                    "embedded_sign_page": "no",
                    "embedded_redirect_iframe_only": "no",
                    "skip_signature_request": "no",
                    "skip_signer_identification": "no"
                }
            ],
            
            "emails": {
                "signature_request_subject": "Your document is ready to sign",
                "signature_request_text": "Hi __FULL_NAME__, \n\n To review and sign the contract please press the button below \n\n Kind Regards",
                "final_contract_subject": "Your document is signed",
                "final_contract_text": "Hi __FULL_NAME__, \n\n Your document is signed.\n\nKind Regards"
            },
            "custom_branding": {
                "company_name": "Company co",
                "logo_url": ""
            }
        }
        

        const request = {
            method: "post",
            url: "https://xxxxxxxx.cloudfunctions.net/sendContract",
            headers: {
                "Content-Type": "application/json",
                "Access-Control-Allow-Origin": "*"
            },
            data: JSON.stringify(body)
        }
        axios(request)
            .then(response => {
                console.log("successfully sent contract")
            })
            .catch(err => {
                console.log("unable send contract")
            })
    }

На консоли веб-браузера появляется ошибка политики CORS. В чем может быть проблема? Я также пытался изменить тип содержимого, но это также не помогло.

...