Форум программистов, компьютерный форум, киберфорум
JavaScript: ExtJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17

Ошибка при добавлении данных HTTP Status 400 Bad Request

12.05.2018, 21:56. Показов 3307. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Столкнулся с новой проблемой, при добавлении данных вылезает данная ошибка. Вроде как даже до сервера данные не доходят в set. Уже всю голову опять сломал... Хотя все остальные запросы, update и delete работают.
Ошибка консоли: ,

Controller:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Ext.define('MenuCatalog.controller.DishCatalogController', {
    extend: 'Ext.app.Controller',
 
    refs: [
        {selector: 'dishGridView',
            ref: 'dishGridView'},
        {selector: 'dishGridView button[action="add"]',
            ref: 'dishGridAdd'},
        {selector: 'dishGridView button[action="delete"]',
            ref: 'dishGridDelete'},
        {selector: 'searchDishView button[action="search"]',
            ref: 'searchDish'},
        {selector: 'addDishFormView',
            ref: 'addDishFormView'},
        {selector: 'dishCatalogView',
            ref: 'dishCatalogView'},
        {selector: 'addDishFormView textfield[name=name] ',
            ref: 'addDishFormName'},
        {selector: 'addDishFormView textfield[name=exit]',
            ref: 'addDishFormExit'},
        {selector: 'addDishFormView textfield[name=category]',
            ref: 'addDishFormCategory'},
        {selector: 'addDishFormView button[action=save]',
            ref: 'addDishFormSave'}
    ],
 
    init: function () {
        this.control({
            'dishGridView  button[action=add]': {
                click: this.onAddDish
            },
            'dishGridView  button[action=delete]': {
                click: this.onDelDish
            },
            'searchCDishView  textfield[name="search"]': {
                change: this.onChangeText
            },
            'dishGridView': {
                cellclick: this.onLineGrid
            },
            'addDishFormView  button[action=save]': {
                click: this.onSaveDish
            },
            'addDishFormView  textfield[name=name]': {
                change: this.onValidation
            },
            'addDishFormView  textfield[name=exit]': {
                change: this.onValidation
            },
            'addDishFormView  textfield[name=category]': {
                change: this.onValidation
            }
        });
    },
 
    onSaveDish: function (button) {
        var me = this;
        var dishModel = Ext.create('MenuCatalog.model.DishCatalogModel');
        dishModel.set(this.getAddDishFormView().down('form').getValues());
        dishModel.save(
            {
            success: function (operation, response) {
                console.log("SUCCESS");
                var objAjax = operation.data;
                Ext.getStore('DishCatalogStore').add(objAjax);
                me.getaddDishFormView().close();
            },
            failure: function (dummy, result) {
                console.log("FAILURE");
                Ext.MessageBox.show({
                    title: 'Ошибка добавления!',
                    msg: 'Такие данные уже существуют',
                    buttons: Ext.Msg.OK,
                    icon: Ext.Msg.ERROR
                });
            }
 
        });
    },
 
    onAddDish: function () {
        Ext.widget('addDishFormView');
    },
 
    onDelDish: function () {
        var sm = this.getDishGridView().getSelectionModel();
        var rs = sm.getSelection();
        this.getDishGridView().store.remove(rs[0]);
        this.getDishGridView().store.commitChanges();
        this.getDishGridDelete().disable();
    },
 
    onChangeText: function () {
        Ext.getStore('DishCatalogStore').load({
            params: {
                search: this.getDishCatalogView().down('searchDishView').getValues()
            }
        });
    },
 
    onLineGrid: function () {
        this.getDishGridDelete().enable();
    },
 
    onValidation: function () {
        if (this.getAddDishFormName().validate() && this.getAddDishFormExit().validate() && this.getAddDishFormCategory().validate()) {
            this.getAddDishFormSave().enable();
        } else {
            this.getAddDishFormSave().disable();
        }
    }
 
});
Интерфейсы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package service;
 
import model.Dish;
 
import java.util.Collection;
 
public interface DishService {
 
    Boolean add(Dish dish);
 
    void update(Dish dish);
 
    Collection<Dish> getDish(String search);
 
    void delete(Dish dish);
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package model.dao;
 
import model.Dish;
 
import java.util.Collection;
import java.util.List;
 
public interface DishDao {
 
    void add(Dish dish);
 
    void update(Dish dish);
 
    void delete(Dish dish);
 
    Collection<Dish> getDish(String search);
 
    public List findByDish(String name);
 
}
Классы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package model;
 
import javax.persistence.*;
import java.io.Serializable;
 
@Entity
@Table(name = "NomenclatureOfDishes", schema = "menu")
public class Dish implements Serializable {
 
    @Id
    @Column(name = "idNomenclatureOfDishes")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    @Column(name = "NameDish")
    private String name;
 
    @Column(name = "ExitDish")
    private String exit;
 
    @Column(name = "Сategory")
    private String category;
 
    public Dish() {
    }
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getExit() {
        return exit;
    }
 
    public void setExit(String exit) {
        this.exit = exit;
    }
 
    public String getCategory() {
        return category;
    }
 
    public void setCategory(String category) {
        this.category = category;
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package model.dao.impl;
 
import model.Dish;
import model.dao.DishDao;
 
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.Collection;
import java.util.List;
 
public class DishDaoImpl implements DishDao {
 
    @PersistenceContext
    private EntityManager emf;
 
 
    @Override
    public void add(Dish dish) {
        emf.persist(dish);
    }
 
    @Override
    public void update(Dish dish) {
        emf.merge(dish);
    }
 
    @Override
    public void delete(Dish dish) {
        emf.remove(emf.getReference(Dish.class, dish.getId()));
    }
 
    @Override
    public Collection<Dish> getDish(String search) {
        if (null == search || search.trim().isEmpty()) {
            return emf.createQuery(
                    "select d from Dish d")
                    .getResultList();
        }
        return emf.createQuery(
                "select d from Dish d where d.name like :search")
                .setParameter("search", search.trim() + "%")
                .getResultList();
    }
 
    public List<Dish> findByDish(String name) {
        return emf.createQuery(
                "select d from Dish d where d.name = :name")
                .setParameter("name", name)
                .getResultList();
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package controllers;
 
import model.Dish;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import service.DishService;
 
import java.util.Collection;
 
@Controller
@RequestMapping("/dish")
public class DishController {
 
    @Autowired
    private DishService dishService;
 
 
    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public Collection<Dish> getDish(String search) {
        return dishService.getDish(search);
    }
 
    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public DishExtResult setDish(@RequestBody Dish dish) {
        return new DishExtResult(dishService.add(dish), dish);
    }
 
    @RequestMapping(value = "{id}", method = RequestMethod.DELETE)
    @ResponseBody
    public String deleteDish(@RequestBody Dish dish) {
        dishService.delete(dish);
        return "delete";
    }
 
    @RequestMapping(value = "{id}", method = RequestMethod.PUT)
    @ResponseBody
    public String updateDish(@RequestBody Dish dish) {
        dishService.update(dish);
        return "update";
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package controllers;
 
import model.Dish;
 
public class DishExtResult  {
    private boolean success;
    private Dish data;
 
 
 
 
    public DishExtResult(boolean success, Dish data) {
        this.success = success;
        this.data = data;
    }
 
    public DishExtResult() {
    }
 
    public boolean isSuccess() {
        return success;
    }
 
    public void setSuccess(boolean success) {
        this.success = success;
    }
 
    public Dish getData() {
        return data;
    }
 
    public void setData(Dish data) {
        this.data = data;
    }
}
Благодарю за внимание!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2018, 21:56
Ответы с готовыми решениями:

Ошибки Synapse (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too Large)
Добрый день. При работе с Synapse начали возникать вот такие вот две ошибки (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too...

Не работает кросдоменный json - запрос на хроме (mac - os) - Status: 400 Bad Request
У коллег на такой же оси, с таким же железом, с таким же софтом все работает :( Запускаю Хром с такими параметрами : open...

VK API, IdHTTP1, http/1.1 400 bad request
Пытаюсь отправить файл во ВКонтакте //Получаем сервер для загрузки изображения String Publ = Edit2-&gt;Text; String Token =...

1
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17
13.05.2018, 02:03  [ТС]
Может это из за того что поле id неправильно формируется. Хотя стоит strategy = GenerationType.IDENTITY
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2018, 02:03
Помогаю со студенческими работами здесь

IdHTTP - как изменить сообщение (HTTP / 1.0 400 Bad Request) на своё?
При возникновении ошибки, IdHTTP выдаёт сообщение HTTP / 1.0 400 Bad Request, как изменить его на своё?

Request.Response ошибка 400 bad request
Добрый день! Прошу помочь с обработкой запросов в Python 2.7.11 Принимать реквест и сохранить на сервере файл из него уже...

Ошибка Bad Request 400
Your browser sent a request that this server could not understand. Additionally, a 400 Bad Request error was encountered while trying...

Ошибка 400 Bad Request
Формирую вот такой запрос POST: POST index.php HTTP/1.1 Host: risris.cwahi.net Referer: http://risris.cwahi.net/index.php ...

Анализ содержимого при 400 bad request
Я знаю, что что запросы, которые шлет на сервер некоторое устройство - некорректны. И Apache их равнодушно отвергает. Так и должно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как генерируется мир в Minecraft
GameUnited 28.05.2025
Задумывались ли вы когда-нибудь о том, сколько песчинок на нашей планете? По приблизительным подсчетам - более 7 квинтиллионов! Это цыфра с 18 нулями. И все же, это даже не половина количества. . .
Один суперкластер Kubernetes для вообще всего
Mr. Docker 28.05.2025
Ваша компания развивается, количество сервисов множится, команды разработки разрастаются, а DevOps-инженеры начинают напоминать ту самую собаку из мема про "всё нормально, когда ничего не нормально". . . .
CAP-теорема или почему идеальной распределенной системы не существует
ArchitectMsa 28.05.2025
Вы переводите деньги со своего счета на счет друга. Казалось бы, что может быть проще? Вы открываете приложение банка, вводите сумму, жмете кнопку - и деньги мгновенно переходят с одного счета на. . .
Пишем первый чатбот на C# с нейросетью и Microsoft Bot Framework
UnmanagedCoder 28.05.2025
Microsoft Bot Framework представляет собой мощнейший инструментарий для создания разговорных интерфейсов любой сложности. Он предлагает целостную экосистему, которая включает SDK для C#, сервисы. . .
Event-Driven приложения с Apache Kafka и KafkaFlow в .NET
stackOverflow 26.05.2025
Для . NET разработчиков работа с Kafka традиционно сопряжена с определенными трудностями. Официальный клиент Confluent хорош, но часто требует написания большого количества шаблонного кода. Многие. . .
Квантовое программирование: Реализуем первый алгоритм на Q#
EggHead 26.05.2025
Квантовое программирование — одна из тех областей, которая ещё недавно казалась чем-то недоступным обычному разработчику. Многие представляют себе учёных в белых халатах, работающих с огромными. . .
Запилил скелет проекта физического симулятора.
Hrethgir 26.05.2025
Нзвание публикации "Вычислить VS запомнить — простой и экономичный пример организации обработки потока данных для физической симуляции". Пока только скелет, но всё - будет. . . .
Авто-векторизация в C с GCC 14
NullReferenced 25.05.2025
Современные процессоры давно перестали наращивать тактовую частоту как основной способ увеличения производительности. Вместо этого они обзавелись специализироваными блоками SIMD (Single Instruction,. . .
Типы данных в Python
py-thonny 25.05.2025
Когда я только начинал работать с Python, меня поразило, насколько органично типы данных встроены в синтаксис. Забавно, но факт: некоторые программисты, перешедшие с Java или C++, сначало даже не. . .
.NET Aspire и cloud-native приложения C#
stackOverflow 24.05.2025
. NET Aspire — новый продукт в линейке Microsoft, который вызвал настоящий ажиотаж среди разработчиков облачных приложений. Компания называет его "опинионированным, облачно-ориентированным стеком для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »