Je suis sur site.com essayant de saisir des données JSON à partir de mon serveur NODE.JS servant sur le port 8080.
i Obtenir ce message d'erreur: P>
model = Backbone.Model.extend({ url: function() { return 'http://site.com:8080/' + this.id } });
3 Réponses :
Si vous apportez l'appel au même domaine, pourquoi avez-vous le chemin absolu dans votre Essayez ceci: P> $. Obtenez CODE> Demande?
$.get('/1/', {}, function (Data) {
console.log(Data);
}, "json");
model = Backbone.Model.extend({
url: function() {
return '/' + this.id
}
});
Vous devez faire appel à l'appel au même domaine
Alternativement, vous pouvez modifier votre serveur NODE.JS pour permettre le partage des ressources croisées (COR). Cela ne fonctionne que dans les navigateurs modernes. La chose la plus simple (et la moins sécurisée) à faire serait pour votre nœud.js Server d'émettre l'en-tête "Access-Control-Autory-Origin: http://site.com ". Vous pouvez en apprendre davantage sur Cors ici: http://www.w3.org/tr/cors/ a> p>
Salut pourriez-vous expliquer pourquoi cela ne serait pas sécurisé?
L'en-tête DE Demande d'origine indique que la demande croisée provient de. La chose la moins sécurisée à faire serait de permettre à n'importe quel site tiers d'accéder à vos données (c'est-à-dire définir "Access-Control-Lect-ORGIN: *"). Cela peut être ce que vous voulez, si vos données sont publiques, mais que vous devriez l'utiliser avec soin. Une chose plus sécurisée consiste à lire l'en-tête d'origine et à vérifier qu'il s'agit d'un domaine approuvé, puis émet seulement l'émetteur "Access-Control-Abed-ORGIN: SITE.COM " Header pour les domaines approuvés.
Les ports doivent également correspondre, sinon JSONP est en effet la seule option.
J'ai le même problème. IMHO, cela devrait être clarifié dans la documentation (que les ports sont considérés comme faisant partie du domaine). De plus, sont également des demandes entre les sous-domaines illégaux également?