У меня есть вызов ajax для запроса HTTP-сервера Python. Firefox говорит, что CORS-заголовок «Access-Control-Allow-Origin» отсутствует », но это ложь. Firefox показывает сам заголовок источника.
Pyton-код:
class DepmanHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
...
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Credentials', 'true')
self.send_header('Vary', 'Origin')
self.send_header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE, OPTIONS')
self.send_header("Access-Control-Allow-Headers", "Content-Type")
...
self.send_response(200)
self.end_headers()
jquery ajax call:
...
$.ajax({
url: url, // url variable builted before
type: 'get',
dataType: "text/plain",
cache: false,
processData: false,
xhrFields: {
withCredentials: true
},
success: function (data) {
//var result = data.d.results;
//var i = result.length;
$("#result_area").html("Unbeliveble. It's done:<br/>" + data)
},
error: function (err) {
$("#result_area").html("Error:<br/>" + JSON.stringify(err));
},
complete: function(data) {
$("#result_area").html() + "<br/>Call finaly completed"
}
Firefox отправляет запрос и с гордостью говорит «Access-ControlЗаголовок CORS -Allow-Origin ”отсутствует». Но это все еще ложь. Инструмент разработки Firefox показывает сам заголовок ответа:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Vary: Origin
Access-Control-Allow-Methods: GET,PUT,POST,DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type
HTTP/1.0 200 OK
Server: BaseHTTP/0.6 Python/3.7.4
Date: Thu, 10 Oct 2019 14:49:13 GMT
Итак, как это может быть?!?