Не удалось получить ответ после Ajax простого массива из JS путем расширения chrome до моего внутреннего "python"
ошибка появляется в консоли:
Cross-Origin Read Blocking (CORB) blocked cross-origin response http://127.0.0.1:5000/test with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details
Я пытался проверить
https://www.chromestatus.com/feature/5629709824032768
и
https://www.chromium.org/Home/chromium-security/corb-for-developers
Из этих двух ресурсов я узнал, почему они создали CORB ИЛИ CORS, но он не предлагает какого-либо примера, который бы работал для всех разработчиков, или, может быть, я каким-то образом заблудился, я я не уверен, что я должен делать или добавлять к своему коду
обновление:
я также дал этим попробовать
Как запретить CORB блокировать запросы к ресурсам данных, которые отвечают заголовками CORS?
Блокировка чтения из разных источников (CORB)
XMLHttpRequest не может загрузить XXX Нет заголовка «Access-Control-Allow-Origin»
background.js
//added this part:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
fetch(request.input, request.init).then(function(response) {
return response.text().then(function(text) {
sendResponse([{
body: text,
status: response.status,
statusText: response.statusText,
}, null]);
});
}, function(error) {
sendResponse([null, error]);
});
return true;
});
MainFest:
{
"manifest_version": 2,
"name": "testExtention",
"description": "test extention",
"browser_action" : {
"default_title" : "hello computer!",
"default_popup" : "popup.html"
},
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["https://www.example.com/*", "https://m.example.com/*"],
"js": ["content.js"]
}],
"version": "1.0",
"permissions": [ "tabs", "storage" ,"http://127.0.0.1:5000/*" ]
}
my js Ajax код:
const req = new XMLHttpRequest();
req.open('POST' , "http://127.0.0.1:5000/test");
// for cors
req.setRequestHeader("dataType",'json');
req.setRequestHeader('responseType','application/json');
req.setRequestHeader('Access-Control-Allow-Credentials' , 'true');
req.setRequestHeader('Access-Control-Allow-Origin','*');
req.setRequestHeader('Access-Control-Allow-Methods','GET');
req.setRequestHeader('Access-Control-Allow-Headers','application/json');
req.onload = ()=>{
var res = JSON.parse(req.responseText);
console.log('the response from the server = > ',res)
}
const data = new FormData();
data.append('x', y);
req.send(data);
питон
from flask import Flask
from flask_cors import CORS ,cross_origin
app = Flask(__name__)
cors = CORS(app)
@app.route("/test" ,methods = ["POST"] )
def req():
y = request.form.get("x")
z = jsonify({"success":y, 'headers': {
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'GET',
'Access-Control-Allow-Headers':'application/json',
}})
z = request.form.get("x")
print(f'ive recieved this \n\n {z}') // x is printed fine.
return jsonify({"success":z})
В консоли я вижу, что Python получил и распечатал объект AJAX, но не отправил ответ на javaScript