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

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

12.05.2018, 21:56. Показов 3547. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru