La SCRO problème: erreur “Non "Access-Control-Allow-Origin' en-tête est présent” quand il ne l'est réellement

Je doute que le backend servir mon app est important, mais si vous l'aimez, je suis en utilisant rack de la scro avec Rails 4.0 app.

À l'aide de jQuery, j'ai envoyer mon application un PATCH demande comme suit:

$.ajax({
  url: "http://example.com/whatever",
  type: "PATCH",
  data: { something: "something else" }
})

Quand je déclencheur de cet appel à partir de Chrome, je vois un succès OPTIONS demande de sortir, qui renvoie ces en-têtes à partir de mon serveur:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:accept, content-type
Access-Control-Allow-Methods:GET, PUT, PATCH, OPTIONS
Access-Control-Allow-Origin: http://sending-app.localhost:3000
Access-Control-Expose-Headers:
Access-Control-Max-Age:15

Puis je vois un PATCH demande de sortir, ce qui génère cette erreur:

XMLHttpRequest ne peut pas charger http://example.com/whatever. Pas de "Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine " http://sending-app.localhost:3000 ' est donc pas autorisé à accéder.

J'ai essayé de commutation de PATCH à PUT avec les mêmes résultats.

Cela ne fait aucun sens pour moi. Ce qui se passe?

Mise à jour: Ma config/application.rb

Je pensais que les en-têtes raconté toute l'histoire, mais puisque les gens sont confus, voici mon config/application.rb fichier, qui est de savoir comment le rack de la scro plugin pour Rails est configuré:

config.middleware.use Rack::Cors do
  allow do
    origins '*'
    resource '*',
      :headers => :any,
      :methods => [:get, :put, :patch, :options],
      :max_age => 15
  end
end
Quel est votre application.rb ressembler?
J'ai ajouté ma application.rb, pour ce que ça vaut.

OriginalL'auteur chadoh | 2013-12-21