@GaserV

Почему Эмбер отправляет данные не корректно при ПУТ запросе?

Такая бедя. Шлю PUT запрос на апдейт. На бэке для теста просто возвращаю тайтл. Через постман работает, если установить контент тайп application/x-www-form-urlencoded. В адаптере тоже его установил, но в постмане возвращается тайтл, а в эмбере нет. Где может быть проблема?
import RESTAdapter from 'ember-data/adapters/rest';
import config from '../config/environment';
import Inflector from 'ember-inflector';
import _ from 'lodash';

const { API_HOST, API_PREFIX } = config,
      inflector = Inflector.inflector,
      dataType = 'json',
      contentType = 'application/json; charset=utf-8';

export default RESTAdapter.extend({
  host: API_HOST,
  namespace: API_PREFIX,
  defaultSerializer: 'JSONSerializer',
  headers: {},

  sendRequest(body) {
    return new Ember.RSVP.Promise((resolve, reject) => {
      Ember.$.ajax(body).then(
        data => Ember.run(null, resolve, data),
        jqXHR => {
          jqXHR.then = null; // tame jQuery's ill mannered promises
          Ember.run(null, reject, jqXHR);
        }
      );
    });
  },

  updateRecord(store, type, snapshot) {
    const pathname = inflector.pluralize(_.camelCase(type.modelName)),
          { id } = snapshot;

    let data = this.serialize(snapshot, { includeId: true }),
        namespace = this.get('namespace'),
        host = this.get('host'),
        sendRequest = this.get('sendRequest'),
        headers = this.get('headers'),
        dataType = 'text',
        contentType = 'application/x-www-form-urlencoded',
        url = `${host}/${namespace}/${pathname}/${id}`;

    let sendData = JSON.stringify(data);

    return sendRequest({ type: 'PUT', headers, url, dataType, contentType, sendData });
  },
});
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
@GaserV Автор вопроса
Решил. Проблема была в том, что Ember шлет json, а Postman - formdata. Соответственно возвращать нужно как $data = $request->json()->all(); $data['title']
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы