Jeg gjør et ajax-anrop til min egen server på en plattform som de forhindrer disse ajax-anropene (men jeg trenger det for å hente dataene fra serveren min for å vise hentede data fra serverens database). Ajax-skriptet mitt fungerer, det kan sende dataene til serverens php-skript slik at de kan behandles. Det kan imidlertid ikke få de behandlede dataene tilbake ettersom de er blokkert av "Access-Control-Allow-Origin".
Jeg har ikke tilgang til plattformens kilde / kjerne. så jeg kan ikke fjerne skriptet som det ikke tillater meg å gjøre det. (P / S Jeg brukte Google Chrome&# 39s konsoll og fant ut denne feilen)
Ajax-koden som vist nedenfor:
$.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);
}
});
eller er det en JSON
tilsvarende kode til ajax-skriptet ovenfor? Jeg tror JSON
er tillatt.
Jeg håper noen kan hjelpe meg.
Legg dette på toppen av retrieve.php:
header('Access-Control-Allow-Origin: *');
Vær oppmerksom på at dette effektivt deaktiverer CORS-beskyttelse, og etterlater brukerne dine utsatt for angrep. Hvis du ikke er helt sikker på at du trenger å tillate alle opprinnelser, bør du låse dette til en mer spesifikk opprinnelse:
header('Access-Control-Allow-Origin: https://www.example.com')
Jeg har løst dette problemet når jeg ringer en MVC3-kontroller. Jeg la til:
Response.AddHeader("Access-Control-Allow-Origin", "*");
før min
return Json(model, JsonRequestBehavior.AllowGet);
Og også min $.ajax
klaget over at den ikke aksepterer Content-type header i min ajax-anrop, så jeg kommenterte det ut som jeg vet at JSON blir sendt til handlingen.
Håper det hjelper.