Метод GET405 не разрешен (JavaScript и Flask)

Я начинаю разработку 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)

Прочитал много форумов, но ничего не помогает...

Большое Вам спасибо.

В вашем коде JavaScript отсутствует неотъемлемая часть фактической отправки запроса. Пожалуйста, добавьте это.

idmean 30.01.2019 13:52

Обычно это происходит, когда вы отправляете метод HTTP, который не поддерживается для запрашиваемого вами маршрута. Проверьте инструменты разработчика chome> Сеть, если запрос отправлен правильно и по правильному маршруту.

Haris Bouchlis 30.01.2019 13:54

Да, запрос отправлен правильно, он публикует файл json.

KRdg 30.01.2019 14:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
583
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Fetch по умолчанию использует запрос GET.

Ваше фляжное приложение принимает только POST на этой конечной точке. Вместо этого скажите выбрать POST для конечной точки.

fetch('http://127.0.0.1:5053/api/prediction_lime', {
        method: "POST"
        })

Подробнее о МДН

Другие вопросы по теме