web-dev-qa-db-fra.com

Cors avec fonction Azure de localhost (pas CLI)

Nous utilisons axios dans une application vue.js pour accéder à une fonction Azure. En ce moment, nous obtenons cette erreur:

No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:8080' is therefore not allowed access.

Nous essayons de définir des en-têtes de réponse dans la fonction de cette façon:

context.res = {
        body: response.data,
         headers: {   
          'Access-Control-Allow-Credentials': 'true',
          'Access-Control-Allow-Origin': 'http://localhost:8080',
          'Access-Control-Allow-Methods': 'GET',
          'Access-Control-Request-Headers': 'X-Custom-Header'
         }
      }

Quelqu'un a-t-il rencontré cette erreur?

19
steverb

Pour que CORS fonctionne localement lorsque vous n'utilisez pas CLI et que vous utilisez Visual Studio/VS Code - vous devez ajouter le fichier local.settings.json à votre projet s'il n'y est pas.

Assurez-vous que "Copier pour sortir directement" est réglé sur "Copier si plus récent"

local.settings.json settings

Ensuite, dans votre "local.settings.json", vous pouvez ajouter CORS": "*" ainsi:

{
  "IsEncrypted": false,
  "Values": {

  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*"
  }
}

Plus d'informations: https://docs.Microsoft.com/en-us/Azure/azure-functions/functions-run-local

34
Azadeh Khojandi

Nous l'avons fait fonctionner. C'était une configuration dans notre fonction Azure. Vous allez dans "Fonctionnalités de la plateforme" puis "CORS". Nous avons ajouté http: // localhost: 808 à la liste des "origines autorisées", puis tout a fonctionné.

21
steverb