Backbone Fetch Request est la méthode OPTIONS
J'ai une épine Dorsale objet de Collection avec l'URL suivante "http://localhost:8080/api/menu/1/featured". Je suis en train d'effectuer une opération de récupération pour récupérer la collection à partir de l'url et de l'analyser. Cependant, sur le côté serveur, le type de méthode que je vois de cette demande est d'OPTIONS. Le serveur est uniquement supposons qu'à l'appui de la méthode GET. Je ne suis pas sûr de combien épine Dorsale est de déterminer le type de méthode à utiliser, et pourquoi il change d'OPTIONS de type de méthode au hasard parfois. Je suis à l'aide d'un Node.js serveur pour traiter la demande. Ce code ci-dessous est à peu près ce que j'ai fait.
var FeaturedCollection = Backbone.Collection.extend({
model:FeaturedContent,
url:function () { return url_featured; },
parse:function (response) {
console.log(response);
return response;
}
});
var featuredCollection = new FeaturedCollection();
featuredCollection.fetch();
S'il vous plaît aider, merci!
source d'informationauteur Jeffrey Chen
Vous devez vous connecter pour publier un commentaire.
Il a été un certain temps, mais je me souviens de venir à travers cette avant. Il y a deux choses: Squelette par défaut essayé de faire des API RESTful d'appels à votre backend, cela signifie GET, POST, PUT et DELETE.
Plusieurs backends n'étaient pas construits avec de vrais REPOS de soutien et de support seul GET et POST. Lors de l'épine Dorsale envoie un PUT ou DELETE de votre navigateur (pas de colonne vertébrale), qui envoie automatiquement une demande d'OPTIONS d'abord pour voir si elle est autorisée à faire ces sortes de demandes. Si votre serveur répond mal cet appel échouera et probablement épine Dorsale de ne pas faire n'importe quoi.
Pour obtenir autour de cette série
Backbone.emulateHTTP = true;
Ou votre serveur correctement les OPTIONS de réponse à des appels. Voir la documentation pour plus d'info: http://backbonejs.org/#Sync-emulateHTTPL'autre problème, c'est que vous êtes faire des requêtes ajax cross-domaine /sous-domaine et que vous avez besoin pour l'activer correctement la SCRO. Cela inclut également correctement les OPTIONS de réponse des requêtes.
J'ai eu exactement le même problème que l'OP - à l'aide de l'épine Dorsale et NodeJS pour enregistrer des données par l'intermédiaire d'un SCRO requête POST n'auront de cesse d'envoyer une requête http en-tête, et de ne pas déclencher la requête POST.
Apparemment de la SCRO avec les demandes qui "peut provoquer des effets secondaires sur les données de l'utilisateur" fera de votre navigateur "contrôle en amont" de la demande avec les OPTIONS d'en-tête de demande de vérifier pour approbation, avant l'envoi de votre méthode de requête HTTP.
https://developer.mozilla.org/en-US/docs/HTTP_access_control#Overview
Ce fil a été ce qui a résolu mon problème - Comment permettre à la SCRO?
L'affiche certains middleware pour approuver PUT/GET/POST/SUPPRIMER des requêtes comme soi -
et la méthode next(); permettrait de cocher des OPTIONS pour continuer à la requête POST.
A travaillé comme un rêve pour moi, j'espère que ça aide quelqu'un d'autre aussi.
Backbone.js cartes des méthodes CRUD pour HTTP. Prises de Squelette de code source:
Probablement le problème réside sur votre node.js backend.
Quelle est la version de l'épine dorsale utilisez-vous? J'ai eu exactement le même problème, mais ensuite j'ai réalisé que je avais été en utilisant une ancienne version de l'épine dorsale (0.3.3) dans un tutoriel. Mis à jour le lien vers la dernière backbone.js (0.9.2) et underscore.js(1.3.3) et il envoie comme un GET.