Pergunta

Mozilla é o próprio especificação diz simples GET ou POST deve ser nativamente cors sem preencher, mas até agora todo POST A tentativa que fiz resultou em um OPTIONS cabeçalho saindo. Quando eu mudo de POST Para obter o código, envia imediatamente um GET Solicitação para que a parte do site transversal esteja funcionando bem.

Aqui está uma amostra fraca do que estou fazendo no Firefox:

 var destinationUrl = 'http://imaginarydevelopment.com/postURL';
 var invocation = new XMLHttpRequest();
            if (invocation) {
                invocation.open('POST', destinationUrl, true);
                //tried with and without this line
                //invocation.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

                invocation.onreadystatechange = (function Handler() {
                if (invocation.readyState == 4)
                        alert('Request made');
                });
                invocation.send(/* tried with and without data*/);
            }

Aqui está o que eu já havia trabalhado no Chrome e IE:

var destinationUrl = 'http://imaginarydevelopment.com/postURL';
var destination = { url: destinationUrl, type: 'POST', success: AjaxSuccess, error: AjaxError,
            dataType: 'text', contentType: 'application/x-www-form-urlencoded'
        };
  destination.data = { 'rows': rowList, 'token': token };
            $jq.ajax(destination);
Foi útil?

Solução 2

Bem, eu não sei o que todos os types de conteúdo realmente funcionam, mas text/plain Faz em todos os 3 navegadores:

var destination = { url: destinationUrl, type: 'POST', success: AjaxSuccess, error: AjaxError,
             contentType: 'text/plain'
        };
var postData={ 'anArray': theArray, 'token': token };
            destination.data=JSON.stringify(postData);

$jq.ajax(destination);

No entanto, até agora, não descobri o que está impedindo a solicitação de fazer qualquer coisa além de executar o método de sucesso, mesmo quando um código 505 é retornado. Adicionando um cabeçalho de resposta de Access-Control-Allow-Origin: * Resolveu o navegador que não deseja ler os dados de retorno.

Outras dicas

Eu tenho o mesmo problema

https://developer.mozilla.org/en/http_access_control

diz que o Enctype precisa ser texto/simples ou você precisa usar o FX4+ todos os cabeçalhos de acesso devem ser definidos corretamente

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top