これがローカルホストのみに必要な場合は、次のようにすることができます。アクセスするには、http://localhost:8080/foo
;に電話をかけます。ただし、これにより、クロスサイトインジェクション保護が原因でいくつかの問題が発生する可能性があります。これらはグーグルで簡単に解決できます。
JS側では、次のようなAJAX呼び出しを行います(jQueryを想定)
$.ajax('http://localhost:8080/foo', function (data) {console.log(data)});
そして、Python側では、このファイルをコンピューターで使用しようとしているhtmlファイル(index.html)と同じディレクトリに置き、実行します。
import BaseHTTPServer
import json
class WebRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
desiredDict = {'something':'sent to JS'}
if self.path == '/foo':
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(json.dumps(desiredDict))
else:
if self.path == '/index.html' or self.path == '/':
htmlFile = open('index.html', 'rb')
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Access-Control-Allow-Origin","http://localhost:8080/")
self.end_headers()
self.wfile.write(htmlFile.read())
else:
self.send_error(404)
server = BaseHTTPServer.HTTPServer(('',8080), WebRequestHandler)
server.serve_forever()