Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
180
rated 0 times [  182] [ 2]  / answers: 1 / hits: 20624  / 13 Years ago, mon, december 12, 2011, 12:00:00

I am learning the JQuery Get method. I start up a Python HTTP server:



(just typing command Python -m SimpleHTTPServer).



It's fine to test this webserver by just visiting http://localhost:80 on my web browser. However, when I write this very simple javascript to visit my webserver. I get an error message:



code 501, message Unsupported method ('OPTIONS')



I use jquery.xdomainajax.js library which suppose cross domain request JQuery.



Here is my javascript code:



<html>
<head>
<script src=jquery.min.js></script>
<script src=jquery.xdomainajax.js></script>
<script type=text/javascript>
$(document).ready(function(){
u = 'http://localhost:80';
jQuery.get(u, function(res){
$(#data).html(res.responseText)
});
});


</script>
</head>
<body>
<p id=data></p>
</body>
</html>


Actually, if I change u to any other url, such as http://www.google.ca. It works quite well. But I have no idea why it does not work for the basic Python HTTP server. Can anyone help me?


More From » jquery

 Answers
11

What I do is to write a customized HTTPRequestHandler. I add a do-OPTIONS method inside MyHandler to tell browser my server support CORS. This is done by sending headers Access-Control-Allow-Origin, Access-Control-Allow-Methods and Access-Control-Allow-Headers. Also, I add a "self.send_header('Access-Control-Allow-Origin', '*')" statement in do_GET method.


class MyHandler(BaseHTTPRequestHandler):
def do_OPTIONS(self):
self.send_response(200, "ok")
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
self.send_header("Access-Control-Allow-Headers", "X-Requested-With")
self.end_headers()

def do_GET(self):
self.send_response(200)
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write("<html><body>Hello world!</body></html>")
self.connection.shutdown(1)

[#88610] Friday, December 9, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
eden

Total Points: 730
Total Questions: 117
Total Answers: 117

Location: Peru
Member since Fri, Oct 14, 2022
2 Years ago
;