0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17

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

12.05.2018, 21:56. Показов 3648. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru