J'essaie de faire une demande de base à un serveur actif (vérifié via google POSTMAN) dans une application emberJS. Mais quand je l'essaie, je reçois une erreur http 404. Ensuite, j'ai inspecté l'erreur, et j'ai vu que la requête d'origine qui vient du côté client est une requête OPTION au lieu de la requête GET. En outre, je me suis fixé deux en-tête, Accept
et Content-Type
être application/json
et lors de l'inspection, l'inspecteur Printed ces en-têtes:L'adaptateur JSONAPI emberJS envoie une OPTION à la place de la requête GET
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:GET
Connection:keep-alive
Host:frontend.com
Origin:http://localhost:4200
Referer:http://localhost:4200/restaurant
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
Maintenant, voici l'adaptateur
//Application.js adapter:
import DS from 'ember-data';
export default DS.JSONAPIadapter.extend({
host: 'http://server.com',
namespace: 'v1',
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
}
});
Est-il possible de transformer cette OPTION désactivée ou existe-t-il une solution de contournement? Je ne pensais pas que le brai était si bête, parce que c'est censé être l'une des principales choses que devrait faire emberJS - envoyer des requêtes. Toute aide est appréciée.
Votre commentaire indique que vous croyez que Ember est buggé? Êtes-vous familier avec le fonctionnement des requêtes inter-domaines? (En supposant que votre code client et la propriété 'host' sont des hôtes différents) –
Vous voudrez peut-être en apprendre davantage sur ce sujet, (BTW, cela n'a rien à voir avec Ember, c'est le fonctionnement des navigateurs): https: //developer.mozilla .org/fr-fr/docs/Web/HTTP/Access_control_CORS –
J'étais trop stressé hier à cause de ce problème, donc je pensais que la braise était boguée. Je ne connaissais pas du tout CORS. Maintenant, je vais essayer d'autoriser CORS à l'arrière pour résoudre le problème. Merci :) – xpg94