Я начинаю разработку Javascript, которая взаимодействует с сервером Flask. Когда я делаю запрос (отправляю или получаю), у меня всегда возникает ошибка метода 405, которая не разрешена.
Вот мой код JavaScript:
fetch('http://127.0.0.1:5053/api/prediction_lime').then(function (response) {
const contentType = response.headers.get("content-type");
if (contentType && contentType.indexOf("application/json") !== -1) {
if (response.ok) {
response.json().then(function (json) {
app.showOneResult(0, json);
})
}
}
})
И мой код Python для Flask:
import flask
from flask import Flask, render_template, jsonify, request,send_file
from flask_cors import CORS, cross_origin
import numpy as np
import json
import os
#import pandas
print(flask.__version__)
app = Flask(__name__,template_folder='.')
CORS(app, origins = "http://127.0.0.1:8080", allow_headers=[
"Content-Type", "Authorization", "Access-Control-Allow-Credentials"],
supports_credentials=True)
@app.route('/', methods=['POST'])
def index():
return render_template('index.html')
@app.route('/api/predictions',methods=['POST'])
def predictions():
# Cette fonction
params = request.get_json(force=True)
print(params)
with open('predictions.json', encoding='utf8') as f:
data = json.load(f)
return jsonify(data)
@app.route('/api/prediction_lime',methods=['POST'])
def prediction():
# Cette fonction
params = request.get_json(force=True)
print(params)
with open('prediction_lime.json', encoding='utf8') as f:
data = json.load(f)
return jsonify(data)
Прочитал много форумов, но ничего не помогает...
Большое Вам спасибо.
Обычно это происходит, когда вы отправляете метод HTTP, который не поддерживается для запрашиваемого вами маршрута. Проверьте инструменты разработчика chome> Сеть, если запрос отправлен правильно и по правильному маршруту.
Да, запрос отправлен правильно, он публикует файл json.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Fetch по умолчанию использует запрос GET.
Ваше фляжное приложение принимает только POST на этой конечной точке. Вместо этого скажите выбрать POST для конечной точки.
fetch('http://127.0.0.1:5053/api/prediction_lime', {
method: "POST"
})
Подробнее о МДН
В вашем коде JavaScript отсутствует неотъемлемая часть фактической отправки запроса. Пожалуйста, добавьте это.