«Access-Control-Allow-Origin» ожидает несколько значений - PullRequest
1 голос
/ 28 февраля 2020

У меня были проблемы с CORS для моего сервера, и я попытался включить «Access-Control-Allow-Origin». Когда я запустил приведенный ниже код, он ожидал другого входного аргумента, хотя документация показывает, что ему нужны только 2.

#!/usr/bin/python
import socketserver
import socket
import http.server
import sys


Handler = http.server.SimpleHTTPRequestHandler
Port = 8005
localHost = socket.gethostname()
httpd = socketserver.TCPServer(("localhost", Port), Handler)


Handler.send_header("Access-Control-Allow-Origin", "*")
Handler.end_headers()


httpd.handle_request()
request = httpd.recv(1000000)


httpd.serve_forever()

Когда я запускаю это, я получаю следующую проблему:

 File "serverDP.py", line 29, in <module>
    Handler.send_header("Access-Control-Allow-Origin", "*")
TypeError: send_header() missing 1 required positional argument: 'value'

Я пробовал код отсюда и Github, но мне не повезло. Спасибо за помощь.

Редактировать

Я добавил класс, и теперь он выглядит так:

class CORSRequestHandler(http.server.SimpleHTTPRequestHandler):
    def send_my_headers(self):
        print("This is working :/")
        self.send_header("Access-Control-Allow-Origin", "*")

        http.server.SimpleHTTPRequestHandler.end_headers(self)

    def end_headers(self):
        self.send_my_headers()

Handler = CORSRequestHandler
Handler.send_my_headers(Handler)

У меня все еще есть та же проблема , Однако я не совсем уверен, что я должен передать в функцию "Handler.send_my_headers ()"

1 Ответ

0 голосов
/ 28 февраля 2020

Как насчет использования этого кода?

#!/usr/bin/python
import socketserver
import socket
import http.server
import sys

class CORSRequestHandler(http.server.SimpleHTTPRequestHandler):
    def send_my_headers(self):
        print("This is working :/")
        self.send_header("Access-Control-Allow-Origin", "*")

        http.server.SimpleHTTPRequestHandler.end_headers(self)

    def end_headers(self):
        self.send_my_headers()

print('Server listening on port 8000...')
httpd = socketserver.TCPServer(('', 8000), CORSRequestHandler)
httpd.serve_forever()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...