Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: ExtJS
Войти
Регистрация
Восстановить пароль
 
Cremate45
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17
#1

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

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

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


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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2018, 21:56
Ответы с готовыми решениями:

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

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

VK API, IdHTTP1, http/1.1 400 bad request
Пытаюсь отправить файл во ВКонтакте //Получаем сервер для загрузки...

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

Ошибка Bad Request 400
Your browser sent a request that this server could not understand. ...

1
Cremate45
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17
13.05.2018, 02:03  [ТС] #2
Может это из за того что поле id неправильно формируется. Хотя стоит strategy = GenerationType.IDENTITY
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2018, 02:03

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

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

APEX. 400 Bad Request при аплоаде картинки
Здравствуйте. Задача состоит в следующем: 1. на стороне клиента средствами...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru