দুর্ভাগ্যক্রমে, সহজ এইচটিটিপি সার্ভারটি আসলেই সহজ যে এটি কোনও স্বনির্ধারণের অনুমতি দেয় না, বিশেষত এটি পাঠানো শিরোনামগুলির জন্য নয়। তবে বেশিরভাগটি ব্যবহার করে আপনি নিজেই একটি সাধারণ এইচটিটিপি সার্ভার তৈরি করতে পারেন SimpleHTTPRequestHandlerএবং কেবলমাত্র সেই পছন্দসই শিরোনামটি যুক্ত করতে পারেন।
তার জন্য, কেবল একটি ফাইল তৈরি করুন simple-cors-http-server.py(বা যাই হোক না কেন) এবং আপনি যে পাইথন সংস্করণটি ব্যবহার করছেন তার উপর নির্ভর করে নীচের কোডগুলির মধ্যে একটি রাখুন।
তারপরে আপনি এটি করতে পারেন python simple-cors-http-server.pyএবং এটি আপনার পরিবর্তিত সার্ভার চালু করবে যা প্রতিটি প্রতিক্রিয়ার জন্য সিওআরএস শিরোনাম সেট করবে will
শীর্ষে শেবাং দিয়ে , ফাইলটিকে এক্সিকিউটেবল করে তুলুন এবং এটি আপনার রাস্তায় রাখুন এবং আপনি এটি ব্যবহার করে simple-cors-http-server.pyখুব সহজেই চালাতে পারেন ।
পাইথন 3 সমাধান
পাইথন 3 ব্যবহারসমূহ SimpleHTTPRequestHandlerএবং HTTPServerথেকে http.serverমডিউল সার্ভার চালানোর জন্য:
#!/usr/bin/env python3
from http.server import HTTPServer, SimpleHTTPRequestHandler, test
import sys
class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header('Access-Control-Allow-Origin', '*')
SimpleHTTPRequestHandler.end_headers(self)
if __name__ == '__main__':
test(CORSRequestHandler, HTTPServer, port=int(sys.argv[1]) if len(sys.argv) > 1 else 8000)
পাইথন 2 সমাধান
পাইথন 2 ব্যবহার করে SimpleHTTPServer.SimpleHTTPRequestHandlerএবং সার্ভারটি চালানোর জন্য BaseHTTPServerমডিউল ।
#!/usr/bin/env python2
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer
class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header('Access-Control-Allow-Origin', '*')
SimpleHTTPRequestHandler.end_headers(self)
if __name__ == '__main__':
BaseHTTPServer.test(CORSRequestHandler, BaseHTTPServer.HTTPServer)
পাইথন 2 এবং 3 সমাধান
পাইথন 3 এবং পাইথন 2 উভয়ের জন্য আপনার যদি সামঞ্জস্যতা প্রয়োজন হয় তবে আপনি এই বহুভোজী স্ক্রিপ্টটি উভয় সংস্করণে কাজ করতে পারেন। এটি প্রথমে পাইথন 3 অবস্থান থেকে আমদানি করার চেষ্টা করে এবং অন্যথায় পাইথন 2 এ ফিরে যায়:
#!/usr/bin/env python
try:
# Python 3
from http.server import HTTPServer, SimpleHTTPRequestHandler, test as test_orig
import sys
def test (*args):
test_orig(*args, port=int(sys.argv[1]) if len(sys.argv) > 1 else 8000)
except ImportError: # Python 2
from BaseHTTPServer import HTTPServer, test
from SimpleHTTPServer import SimpleHTTPRequestHandler
class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header('Access-Control-Allow-Origin', '*')
SimpleHTTPRequestHandler.end_headers(self)
if __name__ == '__main__':
test(CORSRequestHandler, HTTPServer)