AJAX en Chrome OPTIONS d'envoi au lieu de GET/POST/PUT/DELETE?

Je travaille sur une application web interne au travail. Dans IE10 la demande de travail est bien, mais en Chrome toutes les requêtes AJAX (qui sont nombreux) sont envoyés à l'aide des OPTIONS de la place de ce que définis méthode je la donne. Techniquement, mes demandes sont "cross domain." Le site est servi sur localhost:6120 et le service, je suis en train de faire des requêtes AJAX est sur 57124. Ce fermé jquery bug définit le problème, mais pas une vraie solution.

Que puis-je faire pour utiliser la bonne méthode http à des requêtes ajax?

Edit:

C'est dans le document de charge de chaque page:

jQuery.support.cors = true;

Et chaque AJAX est construit de la même façon:

var url = 'http://localhost:57124/My/Rest/Call';
$.ajax({
    url: url,
    dataType: "json",
    data: json,
    async: true,
    cache: false,
    timeout: 30000,
    headers: { "x-li-format": "json", "X-UserName": userName },
    success: function (data) {
        //my success stuff
    },
    error: function (request, status, error) {
        //my error stuff
    },
    type: "POST"
});
  • Le dernier commentaire dans ce rapport de bug, il explique assez bien...
  • Il renversé mon esprit parce que tout ce que je fais est donc à la vanille (et mon code est similaire à celle dans le jquery bug). Cela mis à part, il n'y a aucune excuse pour ne pas l'inclure. BRB, l'accaparement des exemples de code.
  • Notez que IE ne considère pas les numéros de port au moment de déterminer si une demande est cross-origin.
  • Notre service REST tire parti des différentes demandes que font les différents éléments en fonction de la méthode http. La commutation tout pour l'OBTENIR n'est pas valide d'un correctif. Aussi, selon Sombre Falcon réponse, il ne vous aidera pas de toute façon parce que j'ai X-nom d'utilisateur et d'autres en-têtes personnalisés à la demande.
  • cela ne change pas le fait que si vous voulez faire une croix-origine de la demande, vous devez suivre toutes les règles qui sont applicables à la croix-de l'origine des demandes pour qu'il fonctionne correctement. la croix-origine des demandes impliquent généralement une demande OPTIONS. Le gérer correctement et que le problème va disparaître. La seule autre façon de résoudre ce problème (sans modification de l'api) est d'avoir un script sur le même serveur que la page principale qui interagit avec l'api à l'aide de code côté serveur.
InformationsquelleAutor Corey Ogburn | 2014-02-14