@Yevgeni

Не могу сделать запрос ajax. Как решить проблему?

Ошибка из консоли хрома: Error: "Network Error"
exportshttps://unpkg.com/axios/dist/axios.min.js:8:4479on... index.html:37:29
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на 127.0.0.1:5000/user. (Причина: не удалось выполнить запрос CORS).

Вьюха flask:
def create_user():
    if request.method == 'POST':
        # Получаем со стороны клиента json объект
        data = request.get_json()
        # Шифруем пароль
        hashed_password = generate_password_hash(
            data['password'], method='sha256')

        # создаем объект юзера на основе модели(класса) User
        new_user = User(public_id=str(uuid.uuid4),
                        username=data['username'], password=hashed_password, is_admin=False)

        # добавляем пользователя в базу данных
        db.session.add(new_user)
        # подтверждаем сохранение в базе данных
        db.session.commit()

        return jsonify({'callback_message': 'new user created!'})


Frontend скрипт:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
    <script>
            new Vue({
                el: "#app",
                data:{
                    username: '',
                    password: ''
                },
                methods:{
                    registerUser: function(){
                        axios.post('http://127.0.0.1:5000/user',{
                            username: this.username,
                            password: this.password
                        }).then(function(response){
                            console.log(response)
                        }).catch(function(error){
                            console.log(error)
                        })
                    }
                }
            })
        </script>
  • Вопрос задан
  • 1562 просмотра
Пригласить эксперта
Ответы на вопрос 2
Vlad_IT
@Vlad_IT
Front-end разработчик
Гуглите CORS
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Положите файлы axios.min.js и vue.js локально на сервер и раздавайте их статикой. Вас не пропускает браузер, говоря, что вы нарушаете политику использования обращений. Ну и читайте про CORS - https://ru.wikipedia.org/wiki/Cross-origin_resourc... и https://habr.com/company/pentestit/blog/337146/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы