Estoy tratando de hacer CORS solicitud POST de domain.com a a.domain.com.

Mi javascript mira como esta

$('#fileupload').fileupload({
  xhrFields: {
    withCredentials: true
  },
  dataType: 'json',
  url: $('#fileupload').data('path'),
  singleFileUploads: true,
  add: function(e, data){
    data.submit();
  }
});

Primero veo las OPCIONES de ruta se llama así:

Request URL: https://a.domain.com/some/route
Request Method:OPTIONS
Status Code:200 OK

OPCIONES DE SOLICITUD:

Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Host:a.domain.com
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

OPCIONES DE RESPUESTA

Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:http://domain.com:3000
Connection:keep-alive
Content-Length:0
Content-Type:text/html;charset=utf-8

Que la petición viene de vuelta con un 200 como se dijo. En mi servidor, tengo la misma ruta con POST método y esto es lo que me sale en volver después de la OPTIONS

Request URL:https://a.domain.com/some/route

SOLICITUD POST

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

y la POST solicitud queda cancelada/falla.

Mi pregunta es, ¿necesito tener el access-control-allow-origin en el POST controlador así?

Tengo una cookie para la autorización que tiene el dominio .domain.com que cookie consiguió envían a través de una vez en una solicitud y no ser enviado ahora. Alguna idea de por qué eso iba a pasar?

InformationsquelleAutor Leo Correa | 2012-09-27

2 Comentarios

  1. 82

    Sí, usted necesita tener el encabezado Access-Control-Allow-Origin: http://domain.com:3000 o Access-Control-Allow-Origin: * en ambas OPCIONES de respuesta y el POST de respuesta. Usted debe incluir el encabezado Access-Control-Allow-Credentials: true en el POST de respuesta.

    Sus OPCIONES de respuesta también debe incluir el encabezado Access-Control-Allow-Headers: origin, content-type, accept para que coincida con el solicitado encabezado.

    • Puede el protocolo se omite? o se puede agregar una con http y https?
    • el protocolo no puede ser omitido, usted tiene que utilizar de dominio, el protocolo y el puerto
  2. -24

    Si está usando PHP para añadir las siguientes líneas

    header ( " Access -Control- Allow-Origin : *") ;
    header ( " Access- Control-Allow -Headers : *") ;

    Probablemente a resolver su problema

    • Access-Control-Allow-Origin no acepta comodines para acreditados de las solicitudes de cualquiera de los dos.

Dejar respuesta

Please enter your comment!
Please enter your name here