Я пытаюсь написать игрушечное расширение Chrome, которое для поисковых веб-сайтов Amazon будет отображать URL-адрес сайта во всплывающем окне с предупреждением с помощью сервера flask (со временем я буду делать более сложные вещи на Python, но не могу) пока не научусь работать с основами).
Мой файл манифеста выглядит так:
Код: Выделить всё
{
"manifest_version":3,
"version":"1.0",
"name":"test",
"content_scripts":[
{
"matches":["*://*.amazon.ca/s*"],
"js":["jquery-3.7.1.js","main.js"]
}
],
"permissions":[
"tabs"
]
}
Мой файл main.js выглядит так:
Код: Выделить всё
const u = window.location.toString();
var res = $.ajax({
url: 'http://127.0.0.1:5000',
type: 'POST',
data: { name:[u] },
contentType: 'application/json',
success: function (response) {
},
error: function (response) {
}
});
alert(res);
И app.py выглядит так:
Код: Выделить всё
from flask import Flask,render_template, request, jsonify
import os
app = Flask(__name__)
@app.route("/")
def process():
# process the data using Python code
data = request.get_json()
url = data['name']
return '''The website is: {}'''.format(url)
if __name__ == '__main__':
app.run(debug=True)
# in terminal run:
os.system('export FLASK_APP=example_python_script.py')
os.system('export FLASK_ENV=development')
os.system('python3 app.py')
Для тестирования я запускаю app.py (в VS Code) и вижу, что сервер «Работает на
http://127.0.0.1:5000», затем открываю Chrome, обновите мое расширение и перейдите к «
https://www.amazon.ca/s?k=dog+toys&crid ... _sb_noss_1» (поиск игрушек для собак на amazon.ca). При отладке похоже, что функцияprocess() получает запросы GET вместо запросов POST, которые я пытаюсь отправить в main.js, и поэтому не может прочитать данные, которые я пытаюсь отправить. По адресу
http://127.0.0.1:5000 отображается ошибка: «Не удалось загрузить данные JSON, поскольку тип содержимого запроса не был «application/json». На веб-странице amazon.ca отображается всплывающее окно с предупреждением о том, что «[объект объекта]» (вместо «Веб-сайт:
https://www.amazon.ca/s?k=dog+toys&crid ... x=dog+toys» %2Caps%2C161&ref=nb_sb_noss_1").
Будем очень благодарны за любую помощь!
Подробнее здесь:
https://stackoverflow.com/questions/785 ... me-extensi