2017-09-20 2 views
2

Lorsque vous utilisez $ http.get dans angulaire, j'ai un problème: Demande Cross-origin Bloqué: la même origine politique interdit la lecture de la ressource à distance .....400 Bad Request pendant magento 2 API REST appel

$http({ 
    method: 'GET', 
    url: 'https://<magento_host>/rest/default/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][0][filters][0][value]=processing,pending&searchCriteria[filter_groups][0][filters][0][condition_type]=in', 
    headers : { 
     'Authorization': 'Bearer xxxxxxxxxxxxxxx' 
    } 
    }).success(function (data) { 

    }).error(function (data) { 

    }); 

Pour éviter les problèmes d'origine croisée, j'ai défini la méthode ci-dessous dans le fichier .htaccess du serveur Apache.

  1. tête toujours défini Access-Control-Allow-Origin "*"
  2. tête toujours défini Access-Control-Allow-méthodes "POST, GET, OPTIONS, PUT, SUPPRIMER"
  3. tête toujours défini contrôle d'accès-allow-têtes: autorisation

Dans les outils de développement de Firefox que je reçois comme ça

  1. Cross-origin Reques t Bloqué: la même règle d'origine interdit
    lecture de la ressource distante à https: /// rest/default/V1/orders? searchCriteria [groupes_filtres] [0] [filtres] [0] [champ] = état & searchCriteria [ filter_groups] [0] [filters] [0] [value] = traitement, en attente & searchCriteria [filter_groups] [0] [filters] [0] [condition_type] = in. (Raison: le canal de contrôle en amont de CORS n'a pas réussi).

Quand j'essaye cet outil reste de débogage client est travaillé

Note: nous essayons de trouver la solution, mais nous avons échoué. S'il vous plaît, aidez-moi ...

Répondre

3

J'utilise ci-dessous le code suivant pour obtenir les solutions.

Modifier les options demandent à 200 ok

RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L] 

<IfModule mod_headers.c> 
    Header always set Access-Control-Allow-Origin "*" 
    Header always set Access-Control-Allow-Headers "Authorization" 
</IfModule> 

enfin activer l'en-tête et redémarrez l'apache

têtes a2enmod

sudo

Service sudo apache2 restart