I'm darau ajax skambutį į savo serverį platformoje, kurioje jie nustatyti užkirsti kelią šiems ajax skambučiams (bet man reikia, kad jis paimtų duomenis iš mano serverio, kad būtų rodomi duomenys, gauti iš mano serverio duomenų bazės).
Mano ajax scenarijus veikia , jis gali siųsti duomenis į mano serverio's php scenarijų, kad jis galėtų apdoroti.
Tačiau jis negali gauti apdorotų duomenų atgal, nes juos blokuoja "Access-Control-Allow-Origin"
Aš neturiu prieigos prie tos platformos's šaltinio / branduolio, todėl negaliu pašalinti scenarijaus, kuris neleidžia man to padaryti. (P/S Naudojau Google Chrome konsolę ir radau šią klaidą)
Ajax kodas, kaip parodyta toliau:
$.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);
}
});
ar yra JSON
kodas, atitinkantis aukščiau pateiktą ajax scenarijų? Manau, kad JSON
yra leidžiamas.
Tikiuosi, kad kas nors galėtų man padėti.
Įdėkite tai į retrieve.php viršų:
header('Access-Control-Allow-Origin: *');
Atkreipkite dėmesį, kad taip iš tikrųjų išjungiama CORS apsauga ir jūsų naudotojai gali būti atakuojami. Jei nesate visiškai tikri, kad reikia leisti visas kilmės šalis, turėtumėte tai apriboti konkrečia kilme:
header('Access-Control-Allow-Origin: https://www.example.com')
Išsprendžiau šią problemą, kai iškviečiamas MVC3 valdiklis. Pridėjau:
Response.AddHeader("Access-Control-Allow-Origin", "*");
prieš mano
return Json(model, JsonRequestBehavior.AllowGet);
Be to, mano $.ajax
skundėsi, kad nepriima Content-type antraštės mano ajax iškvietime, todėl aš ją pakomentavau, nes žinau, kad JSON perduodamas veiksmui.
Tikiuosi, kad tai padės.