2010-09-28 6 views
2

Je rencontre un comportement étrange avec une requête ajax sur un serveur linux partagé Godaddy. La requête fonctionne parfaitement sur beaucoup d'autres serveurs sur lesquels je l'ai testée, mais sur celle-ci, la requête GET se transforme en une requête OPTIONS pour une raison quelconque.Ajax demande GET tournant en demande OPTION

Voici le code js (en utilisant Mootools 1.1):

Vous pouvez voir que la méthode est définie comme GET. Pourtant quand je regarde la demande arriver avec Firebug, elle est passée comme une demande d'OPTIONS. Des pensées sur comment ou pourquoi cela se produirait?

+0

'> la requête GET se transforme en une requête OPTIONS pour certains reason.' êtes-vous par hasard reliant les protocoles de http à https (ou vice versa)? –

+0

Salut Dimitar-- non, tout est juste http. – julio

+0

'myurl' correspond au domaine source (par exemple, myurl a www.domain.com et vous naviguez via domain.com) –

Répondre

2

Généralement, il y a deux raisons à ce type de comportement lors des requêtes XHR (ajax).

    de pontage (https à http ou vice versa) de sorte que le protocole
  1. demande de protocole d'URL diffère de l'URL demandée
  2. subdomain différence (par exemple, les demandes de domain.com www.domain.com)

bottom line: pour que XHR fonctionne, le protocole et les noms d'hôte doivent correspondre en raison des restrictions de contrôle d'accès.

lit:

http://www.w3.org/TR/access-control/#cross-origin-request-with-preflight0

des façons de contourner les restrictions politiques inter-domaines: http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

etc etc