I'estou fazendo uma chamada ajax para o meu próprio servidor em uma plataforma que eles definem para evitar essas chamadas ajax (mas eu preciso dela para pegar os dados do meu servidor para exibir os dados recuperados do banco de dados do meu servidor's).
Meu script ajax está funcionando , ele pode enviar os dados para o meu servidor's php script para permitir que ele seja processado.
Entretanto ele não pode obter os dados processados de volta, pois está bloqueado por "Access-Control-Allow-Origin"
Não tenho acesso a essa plataforma's source/core. por isso posso't remover o script que me proíbe de o fazer. (P/S Eu usei o Google Chrome's Console e descobri este erro)
O código Ajax, como mostrado abaixo:
$.ajax({
type: "GET",
url: "http://example.com/retrieve.php",
data: "id=" + id + "&url=" + url,
dataType: 'json',
cache: false,
success: function(data)
{
var friend = data[1];
var blog = data[2];
$('#user').html("<b>Friends: </b>"+friend+"<b><br> Blogs: </b>"+blog);
}
});
ou existe um código equivalente JSON
ao script ajax acima? Eu acho que o JSON
é permitido.
Espero que alguém me possa ajudar.
Ponha isto em cima do ficheiro retrieve.php:
header('Access-Control-Allow-Origin: *');
Note que isso efetivamente desativa a proteção CORS, e deixa seus usuários expostos a ataques. Se você'não está completamente certo de que você precisa permitir todas as origens, você deve bloquear isso para uma origem mais específica:
header('Access-Control-Allow-Origin: https://www.example.com')
Eu resolvi este problema ao chamar um controlador MVC3. Eu adicionei:
Response.AddHeader("Access-Control-Allow-Origin", "*");
diante do meu
return Json(model, JsonRequestBehavior.AllowGet);
E também o meu $.ajax
estava a reclamar que não aceitava Cabeçalho do tipo de conteúdo na minha chamada ajax, por isso comentei como sei que o JSON está a ser passado para a Acção.
Espero que isso ajude.