2016-12-12 2 views
-1

У меня есть проекты, построенные с помощью Laravel (laravel/framework v5.3.24) и Vue^2.0.1. Я запустил composer update, который обновил laravel/framework по v5.3.26. Странно после этого обновления мои компоненты Vue, используя vue-resource (^ 1.0.3), начали испытывать проблемы. Свойство тела ответа запроса запроса было null (действительные данные выводились из соответствующего URL-адреса). Я не могу понять, почему это так. Выполнялся обратный вызов успеха.vue-resource response body null laravel

Да, были изменены другие зависимости, включая spatie/laravel-fractal и обычные dev-зависимости. Пакет spatie/laravel-fractal, казалось, работал как обычно, и никаких ошибок в его выходе данных не возникало.

Есть ли что-нибудь, что могло бы вызвать эти проблемы с помощью vue-resource?

К счастью, я недавно подтолкнул свою работу к репо GitHub и восстановил файлы в их предыдущем состоянии, и он работал нормально. IMO, эта икота была прямым результатом запуска composer update.

Project URL: https://github.com/AshMenhennett/Salon-Pricing

У меня нет никаких других данных на сообщения, как только ошибки в консоли, был результат нулевой собственности тела на реагировании и его данные, которые я пытался доступ.

+0

Это будет более полезно, если вы можете добавить соответствующий фрагмент кода здесь. – Saurabh

+0

Несомненно. Весь код находится в ссылке github repo, включенной в вопрос ^^. Оскорбительный код находился в '' 'resources/assets/js/components/ServicesTableComponent.vue'''. Однако, скорее, чем программная ошибка, которой больше не существует, из-за «откат», мне было интересно, есть ли что-то, что я пропустил, построить мудрый после обновления до v5.3.26 '' 'laravel/framework''' , Метод '' 'fetchServices''', делающий запрос на получение, свой' '' '' body''' объекта '' 'Response''' был равен null после обновления. – AshMenhennett

ответ

0

В не слишком старшем проекте у нас возникла очень странная проблема с тем, что Laravel и Vue Resource не корректно обрабатывают наши возвращаемые данные. Поэтому дважды проверьте свой тип контента. Вставьте код ниже с помощью нашего обходного пути, вы можете использовать его для отладки.

if('Content-Type' in response.headers && response.headers['Content-Type'] == 'application/json'){ 
    if(typeof response.data != 'object'){ 
     response.data = JSON.parse(response.data); 
    } 
} 
if('content-type' in response.headers && response.headers['content-type'] == 'application/json'){ 
    if(typeof response.data != 'object'){ 
     response.data = JSON.parse(response.data); 
    } 
} 
+0

Спасибо вам большое! Попробуем это в ближайшее время. – AshMenhennett

+0

Я обновил зависимости приложения Laravel ('' 'composer update''') от macOS, тогда как до того, как я использовал Windows 10. На macOS, похоже, не проблема с' '' Reponse''' ' '' vue-resource'''. Странный. Спасибо за вход. – AshMenhennett

+1

Обновление: после вытаскивания обновленного файла '' '' composer.json''' из репозитория обратно на компьютер под управлением Windows 10, я смог запустить '' 'comper update''', и при запуске приложения не произошло непредвиденного поведения. – AshMenhennett