problem z cherrypy / jquery CORS
Mam prosty serwer WWW Pythona oparty na Cherrypy. Jego zasoby będą zapewniać API. Serwer ma następujący kod, aby zapewnić CORS:
def CORS():
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
if __name__ == "__main__":
cherrypy.tools.CORS = cherrypy.Tool('before_finalize', CORS)
cherrypy.quickstart(PyCachedAdmin(), config={'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}})
serwer działa na localhost: 8080. Teraz mam plik HTML, dostępny na localhost (domyślny port 80), który ładuje jquery 1.9. Otwieram konsolę przeglądarki, aby spróbować$.ajax
wykonać dowolne żądanie AJAX do serwera cherrypy. Próbowałem:
$.ajax({
url:'http://localhost:8080/',
type: "POST",
dataType: "json",
data: {command:"version"}
}).done(function(){
console.log('hej');
});
i
$.ajax({
url:'http://localhost:8080/',
type: "POST",
crossDomain: true,
dataType: "jsonp",
data: {command:"version"}
}).done(function(){
console.log('hej');
});
i
$.support.cors = true
i nic nie działało. Dostaję alboXMLHttpRequest cannot load http://localhost:8080/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
lubGET http://localhost:8080/?callback=jQuery19102827550224028528_1382823727186&command=version&_=1382823727187 404 (Not Found)
podczas korzystania z jsonp (to tajemnicze, że wysyła GET zamiast POST). Jest kilka podobnych pytań, wypróbowałem je i to są moje wyniki (że coś jest nadal nie tak).
PS serwer jest w porządku, ponieważ wszystkie testy zwijają się. Coś jest nie tak z rzeczami między domenami.