Angular Nodejs MySql CORS проблема - PullRequest
0 голосов
/ 21 мая 2018

Это способ, которым я включил CORS на nodejs.Но запрос от внешнего интерфейса на обновление записей, похоже, не работает.Но команды get, post, delete работают.

app.use((req, res, next) => {//Middleware for CORS. Code to allow requests from any url
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", 'GET, POST, OPTIONS, PUT, DELETE');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept ");
next();

})

Так я выполняю оператор обновления для Nodejs

backend.put('/updateworkorder/:id', (req, res) => {
    console.log(req.body);
    let sql = "UPDATE workorders SET ? WHERE ?"
    db.query(sql, [{accountNumber: req.body.accountNumber,
        customerName: req.body.customerName,
        packageName: req.body.packageName,
        addons: req.body.addons,
        campaignName: req.body.campaignName,
        notes: req.body.notes,
        entryDate: new Date(req.body.entryDate),
        crew: req.body.crew,
        postDate: new Date(req.body.postDate),
        status: req.body.status
    }, 
        {id: req.body.id}], (err, result) => {
        if (err) throw err;
        // console.log(result);
        res.send(result);
    });
});

Вотвызывающая часть, которая находится в Angular

 updateWorkOrder(workOrder) {
    // console.log(workOrder.id);
    let headers = new HttpHeaders();
     headers.append('Content-Type' , 'application/json');
    return this.http.put(this.BASE_URL + '/updateworkorder/' + workOrder.id, {headers: headers});
  }

Это ошибка на консоли chromes enter image description here

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Согласно вашему методу сопоставления, ваш URL должен содержать идентификатор, который будет распознан шаблоном сопоставления.Сервер не может распознать шаблон URL-адреса и возвращает 404. Чтобы создать действительный URL-адрес и передать данные по запросу, необходимо изменить свой метод в пользовательском интерфейсе на

this.http.put<IWorkOrders>(this.BASE_URL + '/updateworkorder/' + workOrder.id, workOrder);
0 голосов
/ 21 мая 2018

В вашем URL-адресе, на который вы ПУТИТЕ, отсутствует идентификатор, поэтому вы получаете сообщение об ошибке 404 Not Found.В журналах вы можете увидеть URL-адрес, который вы называете, «/ backend / updateworkorder /», когда он должен быть «/backend/updateworkorder/your-id'.

Обновите ваш звонок на:

this.http.put<IWorkOrders>(this.BASE_URL + '/updateworkorder/' + workOrder.id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...