Я пытаюсь отладить проблему с моим приложением, которое не делает правильный шаг вперед (работало нормально, когда я оставил его вчера), и все, что он мне дает, это следующая ошибка в app.js (зарегистрированном из консоли):
Assertion failed: Object(anonymous function) @ app.js:21
header.js:90 view:header@init-summary
И даже тогда, только после того, как было добавлено следующее, чтобы вызвать правильную ошибку из библиотеки RSVP:
RSVP.on('error', function(reason) {
console.assert(false, reason);
});
Кодовая база абсолютно массивна и охватывает практически все используемые в настоящее время языки: от ванильного Javascript до Handlebars, от SQL до PHP, и т. Д. И т. Д., И на самом деле неясно, с чего начать, чтобы выяснить причину ошибки.
На данном этапе нет ничего плохого в сетевом трафике. Может ли кто-нибудь помочь с разработкой того, что мне на самом деле нужно искать? Очевидно, я не собираюсь публиковать всю кодовую базу, но если людям нужен какой-то дополнительный код, чтобы помочь им разобраться в проблеме и обосновать, почему я более чем рад ее предоставить, предполагая, что смогу найти способ сделать это без ущерба для безопасности проекта.
Строка 90 в header.js:
console.log('view:header@init-summary');
После ожидания в течение нескольких минут система неожиданно начала переходить к следующему этапу приложения, но на следующем этапе выдает следующие ошибки:
Assertion failed: Object {readyState: 4, responseText: "{"errors":
[{"status":"404","code":0,"title":"Not Found"}]}", responseJSON:
Object, status: 404, statusText: "Not Found"}(anonymous function) @
app.js:21lib$rsvp$events$$default.trigger @ rsvp.js:245(anonymous
function) @ rsvp.js:779
А также:
Assertion failed: Object {readyState: 4, responseText: "{"errors":
[{"status":"404","code":0,"title":"Not Found"}]}", responseJSON:
Object, status: 404, statusText: "Not Found"}(anonymous function) @
app.js:21lib$rsvp$events$$default.trigger @ rsvp.js:245(anonymous
function) @ rsvp.js:779 jquery.js:9664 PATCH
http://localhost:4200/data/stub/proposal/PYXA5YVJ60N39T3J1QB8/relationfish
/selected-fish 404 (Not Found)
После обеда и возвращения приложение перешло к третьему этапу со следующей ошибкой:
Uncaught TypeError: Cannot read property 'get' of undefined
Ошибка указывает на универсальную вспомогательную библиотеку, но не указывает, откуда вызывается вспомогательная библиотека.
Обновление, теперь вместо этого возвращается следующая ошибка:
PATCH http://localhost:4200/data/stub/proposal/P9UZKZYXH92YFDUHGLUK/relationships
/selected-quote 404 (Not Found)send @ jquery.js:9664jQuery.extend.ajax
@ jquery.js:9215Backbone.RelationalModel.saveRelationship @ json-
api.js:414Marionette.CompositeView.extend.saveApplication @
premiums.js:127Marionette.CompositeView.extend.submitStep @
premiums.js:118(anonymous function) @
backbone.marionette.js:2837triggerEvents @ backbone.js:370triggerApi @
backbone.js:357eventsApi @ backbone.js:155Events.trigger @
backbone.js:346Marionette.ItemView.extend.select @
premium.js:58jQuery.event.dispatch @ jquery.js:4670elemData.handle @
jquery.js:4338
jquery.js:9664 XHR finished loading: PATCH
"http://localhost:4200/fishermen-wires.marionette/stub/proposal/P9UZKZYXH92YFDUHGLUK/relationships/selected-
quote".send @ jquery.js:9664jQuery.extend.ajax @
jquery.js:9215Backbone.RelationalModel.saveRelationship @ json-
api.js:414Marionette.CompositeView.extend.saveApplication @
premiums.js:127Marionette.CompositeView.extend.submitStep @
premiums.js:118(anonymous function) @
backbone.marionette.js:2837triggerEvents @ backbone.js:370triggerApi @
backbone.js:357eventsApi @ backbone.js:155Events.trigger @
backbone.js:346Marionette.ItemView.extend.select @
premium.js:58jQuery.event.dispatch @ jquery.js:4670elemData.handle @
jquery.js:4338
И создает второе представление в Chrome, но не в Firefox или Safari. Я сильно перезагрузил, очистил кеш и удалил куки в Chrome. В других браузерах не было кэшированной копии.
Я искал все мое приложение, используя функцию «Найти в пути» в WebStorm, и библиотека jQuery не вызывается ни в одной точке приложения, которое я пишу, хотя другая библиотека кода может вызывать его по доверенности, и кажется, что библиотека хочет взаимодействовать по-другому, в зависимости от способа, которым посредник общается с ним после того, как я передам данные.
Обновление: теперь переходите к шагу непосредственно перед последним завершенным шагом (еще предстоит написать, но это не проблема на данный момент):
Uncaught Error: An "el" #policy-accept-terms must exist in DOM
Marionette.Region.Marionette.Object.extend._ensureElement @
backbone.marionette.js:1231
Marionette.Region.Marionette.Object.extend.show @
backbone.marionette.js:1089
Marionette.LayoutView.Marionette.ItemView.extend.showChildView @
backbone.marionette.js:3109
Marionette.LayoutView.extend.onRender @ policy.js:79
(anonymous function) @ backbone.marionette.js:685
Marionette.View.Backbone.View.extend.triggerMethod @
backbone.marionette.js:1939
Marionette.ItemView.Marionette.View.extend.render @
backbone.marionette.js:2089
Marionette.LayoutView.Marionette.ItemView.extend.render @
backbone.marionette.js:3092
Marionette.Region.Marionette.Object.extend._renderView @
backbone.marionette.js:1215
Marionette.Region.Marionette.Object.extend.show @
backbone.marionette.js:1145
Marionette.LayoutView.Marionette.ItemView.extend.showChildView @
backbone.marionette.js:3109
Controller.extend.policy @ controller.js:117
_.extend.execute @ backbone.js:1485
(anonymous function) @ backbone.js:1473
(anonymous function) @ backbone.js:1756
_.some._.any @ underscore.js:258
_.extend.loadUrl @ backbone.js:1754
_.extend.navigate @ backbone.js:1816
_.extend.navigate @ backbone.js:1490
Marionette.AppRouter.extend.goToStep @ router.js:42
Marionette.AppRouter.extend.goToNext @ router.js:74
(anonymous function) @ controller.js:66
triggerEvents @ backbone.js:368
triggerApi @ backbone.js:356
eventsApi @ backbone.js:155
Events.trigger @ backbone.js:346
(anonymous function) @ backbone.marionette.js:691
Marionette.View.Backbone.View.extend.triggerMethod @
backbone.marionette.js:1939
Marionette.ItemView.extend.submitStep @ add-ons.js:95
jQuery.event.dispatch @ jquery.js:4670
elemData.handle @ jquery.js:4338
Эта ошибка кажется очевидной и легко исправимой, но Я не вносил никаких изменений в код до появления этого нового сообщения об ошибке, и даже если бы я его исправил, есть большая вероятность, что после запуска веб-сайта / приложения точно такая же проблема возникнет в той или иной форме.
Обновление: пришло сегодня утром, и приложение теперь периодически показывает:
Assertion failed: Objectabort: ( statusText )always: ()complete:
()done: ()error: ()fail: ()getAllResponseHeaders: ()getResponseHeader:
( key )overrideMimeType: ( type )pipe: ( /* fnDone, fnFail, fnProgress
*/ )progress: ()promise: ( obj )readyState: 4responseText: "<br
/>↵<b>Deprecated</b>: Automatically populating $HTTP_RAW_POST_DATA is
deprecated and will be removed in a future version. To avoid this
warning set 'always_populate_raw_post_data' to '-1' in php.ini and use
the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br
/>↵<br />↵<b>Warning</b>: Cannot modify header information - headers
already sent in <b>Unknown</b> on line <b>0</b><br />↵{"data":
{"type":"stub-proposal","id":"P8XSGIFHTDEX6GI6DQOT","attributes":
{"add_ons":
{"legal_helpline":null,"new_for_old":null,"personal_accident":true}},"relationships":{"selected_quote":{"data":{"type":"insurance-
quote","id":"QGZ7SLFNRR3BPOBNB7RB"}},"quotes":{"data":
[{"type":"insurance-quote","id":"QFRQ05MH3MYHNKEXQMV1"},
{"type":"insurance-quote","id":"Q9SLIOJLPQRVIQA31R0T"},
{"type":"insurance-quote","id":"QGZ7SLFNRR3BPOBNB7RB"},
{"type":"insurance-quote","id":"QVSEVJ0BDC59DF19MICQ"}]}},"links":
{"self":"http:\/\/local.theinsuranceemporium.co.uk\/data\/stub\/proposal\/P
8XSGIFHTDEX6GI6DQOT"},"meta":{"current":false,"add_ons":
{"legal_helpline":{"title":"Legal Helpline","description":"If
there\u0027s something strange, in your neighbourhood. Who you gonna
call?","type":"toggle","premium":
{"frequency":"L","rate":"96.00"}},"new_for_old":{"title":"New for
Old","description":"We\u0027ll replace new for
old.","type":"toggle","premium":
{"frequency":"L","rate":"37.00"}},"personal_accident":
{"title":"Personal Accident","description":"Are you clumsy? Why not get
some personal accident cover?!","type":"toggle","premium":
{"frequency":"L","rate":"99.00"}}}}},"included":[{"type":"insurance-
quote","id":"QFRQ05MH3MYHNKEXQMV1","attributes":
{"package":"0ARGUBXV2TAQ2RPF6VNF","definition":
{"title":"Gold","sub_title":null,"description":"Gold insurance from The
Insurance Emporium. Our top level insurance."},"premium":
{"frequency":"L","rate":"24.30","discounted_amount":"24.30","discount_percentage":"0"},"total":{"amount":"24.30","frequency":"L"},"discounts":
[],"benefits":[{"identifier":"public_liability","meta_data":
{"title":"Public Liability","description":"It\u0027s really great to
have some public liability
cover.","add_on":false},"value":1500000,"value_type":"stub"},
{"identifier":"legal_helpline","meta_data":{"title":"Legal
Helpline","description":"If there\u0027s something strange, in your
neighbourhood. Who you gonna
call?","add_on":true},"value_type":"stub"},
{"identifier":"new_for_old","meta_data":{"title":"New for Old
","description":"We\u0027ll replace new for
old.","add_on":true},"value_type":"stub"},
{"identifier":"personal_accident","meta_data":{"title":"Personal
Accident","description":"Are you clumsy? Why not get some personal
accident cover?!","add_on":true},"value_type":"stub"}]}},
{"type":"insurance-quote","id":"Q9SLIOJLPQRVIQA31R0T","attributes":
{"package":"00DPKFR8CKOEHPYKSI8H","definition":
{"title":"Gold","sub_title":null,"description":"Gold insurance from The
Insurance Emporium. Our top level insurance."},"premium": {"frequency":"A","rate":"220.00","discounted_amount":"220.00","discount_per centage":"0"},"total":{"amount":"220.00","frequency":"A"},"discounts":
[],"benefits":[{"identifier":"public_liability","meta_data":
{"title":"Public Liability","description":"It\u0027s really great to
have some public liability
cover.","add_on":false},"value":1500000,"value_type":"stub"},
{"identifier":"legal_helpline","meta_data":{"title":"Legal
Helpline","description":"If there\u0027s something strange, in your
neighbourhood. Who you gonna
call?","add_on":true},"value_type":"stub"},
{"identifier":"new_for_old","meta_data":{"title":"New for
Old","description":"We\u0027ll replace new for
old.","add_on":true},"value_type":"stub"},
{"identifier":"personal_accident","meta_data":{"title":"Personal
Accident","description":"Are you clumsy? Why not get some personal
accident cover?!","add_on":true},"value_type":"stub"}]}},
{"type":"insurance-quote","id":"QGZ7SLFNRR3BPOBNB7RB","attributes":
{"package":"0ZOQVO9WAF9QL34TBGE0","definition":
{"title":"Silver","sub_title":"Better than
Bronze","description":"Silver insurance from The Insurance Emporium.
Our mid-level insurance."},"premium":
{"frequency":"L","rate":"36.30","discounted_amount":"36.30","discount_perce ntage":"0"},"total":{"amount":"36.30","frequency":"L"},"discounts":
[],"benefits":[{"identifier":"public_liability","meta_data":
{"title":"Public Liability","description":"It\u0027s really great to
have some public liability
cover.","add_on":false},"value":1500000,"value_type":"stub"},
{"identifier":"legal_helpline","meta_data":{"title":"Legal
Helpline","description":"If there\u0027s something strange, in your
neighbourhood. Who you gonna
call?","add_on":true},"value_type":"stub"},
{"identifier":"new_for_old","meta_data":{"title":"New for
Old","description":"We\u0027ll replace new for
old.","add_on":true},"value_type":"stub"},
{"identifier":"personal_accident","meta_data":{"title":"Personal
Accident","description":"Are you clumsy? Why not get some personal
accident cover?!","add_on":true},"value_type":"stub"}]}},
{"type":"insurance-quote","id":"QVSEVJ0BDC59DF19MICQ","attributes":
{"package":"0P5K73S8WS1GZ83GIQ5A","definition":
{"title":"Silver","sub_title":"Better than
Bronze","description":"Silver insurance from The Insurance Emporium.
Our mid-level insurance."},"premium":
{"frequency":"A","rate":"395.00","discounted_amount":"395.00","discount_percentage":"0"},"total":{"amount":"395.00","frequency":"A"},"discounts": [],"benefits":[{"identifier":"public_liability","meta_data":
{"title":"Public Liability","description":"It\u0027s really great to have some public liability
cover.","add_on":false},"value":1500000,"value_type":"stub"},
{"identifier":"legal_helpline","meta_data":{"title":"Legal
Helpline","description":"If there\u0027s something strange, in your
neighbourhood. Who you gonna
call?","add_on":true},"value_type":"stub"},
{"identifier":"new_for_old","meta_data":{"title":"New for
Old","description":"We\u0027ll replace new for
old.","add_on":true},"value_type":"stub"},
{"identifier":"personal_accident","meta_data":{"title":"Personal
Accident","description":"Are you clumsy? Why not get some personal
accident cover?!","add_on":true},"value_type":"stub"}]}}]}
↵"setRequestHeader: ( name, value )state: ()status: 200statusCode: (
map )statusText: "OK"success: ()then: ( /* fnDone, fnFail, fnProgress
*/ )__proto__: Object(anonymous function) @ :4200/app/app.js:21
при создании первого вида и периодически отображать ошибку Patch (указанную выше) при переходе ко второму виду. Опять же, ни один код не был изменен мной за прошедшее время.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: У нас есть MongoDB, а также SQL-приложение и различные приложения, сохраняемые в разных местах — я думаю, что мое на самом деле передается через оба банкомата ????? У нас также есть куча вещей на AS400, написанных на RPG, а также уровень бизнес-логики, который также является библиотекой ресурсов.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ОБНОВЛЕНИЕ: Я нашел ссылку jQuery в HTML-коде материнского сайта следующим образом:
<script type="text/javascript" src="vendor/jquery.js"></script>
Библиотека была вызвана с целевой страницы, а не require
подключился к узлу или RequireJS, и по этой причине я не смог найти его в своем приложении.
Задача ещё не решена.
Других решений пока нет …