$.get загружает неправильный URL-адрес при попытке загрузить угловой компонент внутри iframe ⇐ Jquery
-
Anonymous
$.get загружает неправильный URL-адрес при попытке загрузить угловой компонент внутри iframe
Я пытаюсь загрузить компонент angular внутри iframe и отобразить его внутри диалогового окна, отображаемого, когда пользователь щелкает ссылку на странице aspx. Раньше в диалоговом окне отображалось содержимое другой страницы aspx, но мы заменяем его компонентом angular. В проекте Angular есть основной маршрутизатор приложений, который использует отложенную загрузку для загрузки модулей для других компонентов при доступе к соответствующему маршруту. Я могу получить доступ к правильному URL-адресу, просто перейдя в новое окно и набрав «http://localhost:82/app/s/invoice», но когда я пытаюсь загрузить URL-адрес с помощью ajax и записать его в iframe, я перенаправлен на домашнюю страницу угловых проектов. Это происходит всякий раз, когда угловой маршрутизатор не находит подходящего маршрута.
После множества небольших изменений я включил трассировку в маршрутизаторе следующим образом:
[RouterModule.forRoot(маршруты , {enableTracing: true }//ведение журнала и проверил результаты в консоли, чтобы увидеть, какой маршрут на самом деле используется.
По какой-то причине фактический URL-адрес, который передается в угловой маршрутизатор для сопоставления, совпадает с относительным URL-адресом текущей страницы aspx, с которой пользователь щелкает ссылку, вместо URL-адреса, который я передаю в jquery функция получения ajax. Вот пример того, как я пытаюсь выполнить вызов ajax:
$.get('/app/s/invoice', function (ret) { // это iframe внутри div, который мы собираемся загрузить var frm = $('#uploadsrc')[0].contentWindow.document; frm.open(); frm.write(рет); // Записываем форму загрузки в iframe frm.закрыть(); }); и пример маршрута, который фактически передается в угловой маршрутизатор:
/sales/so.aspx?key=123 Надеюсь, что кто-то может знать что-нибудь, что может привести к тому, что функция jquery get по умолчанию будет использовать URL-адрес, отличный от того, который указан в фактическом вызове функции, или как предотвратить подобные вещи.
Изменить дополнительную информацию:
Я могу заставить iframe открыть компонент angular, удалив вызов ajax и вместо этого просто указав атрибут src в элементе iframe как URL-адрес, который я хочу отобразить. Это нормально в качестве запасного варианта, но предпочтительнее загружать компонент Angular только в том случае, если пользователь действительно нажимает ссылку.
Заранее спасибо.
Я пытаюсь загрузить компонент angular внутри iframe и отобразить его внутри диалогового окна, отображаемого, когда пользователь щелкает ссылку на странице aspx. Раньше в диалоговом окне отображалось содержимое другой страницы aspx, но мы заменяем его компонентом angular. В проекте Angular есть основной маршрутизатор приложений, который использует отложенную загрузку для загрузки модулей для других компонентов при доступе к соответствующему маршруту. Я могу получить доступ к правильному URL-адресу, просто перейдя в новое окно и набрав «http://localhost:82/app/s/invoice», но когда я пытаюсь загрузить URL-адрес с помощью ajax и записать его в iframe, я перенаправлен на домашнюю страницу угловых проектов. Это происходит всякий раз, когда угловой маршрутизатор не находит подходящего маршрута.
После множества небольших изменений я включил трассировку в маршрутизаторе следующим образом:
[RouterModule.forRoot(маршруты , {enableTracing: true }//ведение журнала и проверил результаты в консоли, чтобы увидеть, какой маршрут на самом деле используется.
По какой-то причине фактический URL-адрес, который передается в угловой маршрутизатор для сопоставления, совпадает с относительным URL-адресом текущей страницы aspx, с которой пользователь щелкает ссылку, вместо URL-адреса, который я передаю в jquery функция получения ajax. Вот пример того, как я пытаюсь выполнить вызов ajax:
$.get('/app/s/invoice', function (ret) { // это iframe внутри div, который мы собираемся загрузить var frm = $('#uploadsrc')[0].contentWindow.document; frm.open(); frm.write(рет); // Записываем форму загрузки в iframe frm.закрыть(); }); и пример маршрута, который фактически передается в угловой маршрутизатор:
/sales/so.aspx?key=123 Надеюсь, что кто-то может знать что-нибудь, что может привести к тому, что функция jquery get по умолчанию будет использовать URL-адрес, отличный от того, который указан в фактическом вызове функции, или как предотвратить подобные вещи.
Изменить дополнительную информацию:
Я могу заставить iframe открыть компонент angular, удалив вызов ajax и вместо этого просто указав атрибут src в элементе iframe как URL-адрес, который я хочу отобразить. Это нормально в качестве запасного варианта, но предпочтительнее загружать компонент Angular только в том случае, если пользователь действительно нажимает ссылку.
Заранее спасибо.
Мобильная версия