Couchbase Server ne retourne pas l’en-tête CORS à l’object XMLHttpRequest

Couchbase Server est installé sur une VM. J’ai les balises incluses:

[cors] methods: GET origins: * [httpd] enable_cors = true 

dans notre fichier local.ini situé à: D: \ Couchbase \ etc \ couchdb. Dans PostMan, je peux exécuter: http: / xxxx: 8093 / query / service? Statement = sélectionnez le membre d’ edc où member.general_info.member_id = ‘11111’ et voyez une réponse valide renvoyée. Mais lorsque nous essayons de demander à JS dans notre application Web, nous sums bloqués. Notre JS ressemble à:

 var xhReq = new XMLHttpRequest(); xhReq.open("GET", "xxxx:8093/query/service?statement=select member from `edc` where member.general_info.member_aces_id= '11111'", true); xhReq.onload = function() { console.log('Response from CORS request ' + xhReq.responseText); }; xhReq.onerror = function() { console.log('Woops, there was an error '); }; xhReq.send(); 

La réponse que nous voyons dans la console Chrome est la suivante:

XMLHttpRequest ne peut pas charger l’instruction http: / xxxx: 8093 / query / service? = Select% 20member% 20from% 20 edc % 20where% 20member.general_info.member_aces_id =% 20% 2711111% 27. Aucun en-tête “Access-Control-Allow-Origin” n’est présent sur la ressource demandée. L’origine ‘http: / localhost: 8080’ n’est donc pas autorisée.

De la documentation de couchbase que je pourrais trouver en ligne cela devrait fonctionner. S’il vous plaît laissez-moi savoir si vous voulez que j’inclus d’autres configurations. Merci pour l’aide!

Ceci est dû au fait que la sécurité Web de Chrome ne permet pas la commande localhost, consultez http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html pour une explication – essayez Firefox ou remplacez le Web Chrome sécurité en commençant par les options:

 --disable-web-security --user-data-dir 

En essayant d’utiliser XMLHttpRequest, vous ne pouvez pas définir responseType en mode asynchrone. Pour éviter cela, j’ai décidé d’utiliser ajax comme:

 $.ajax({ url: "http://xxxx:8093/query/service?statement=select member from `edc` where member.general_info.member_aces_id='11111'", responseType: 'json', type: 'GET', success: function(data) { console.log("data: " + JSON.ssortingngify(data)); }, error: function(xhr, status, err) { console.log("error: " + err + " xhr: " + JSON.ssortingngify(xhr)); } }); 

Je suis également passé à Chrome de Chrome car Chrome ne le permet pas même avec l’extension CORS. J’utilise aussi des cors partout avec Firefox.