IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  XML  >

Совет по XForms: Разрешение междоменной загрузки и отправки в Firefox

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить

Исходные тексты примера


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Тайлер Андерсон, независимый автор, Stexar Corp.

10.07.2007

Для работы с Firefox XForms имеет встроенную функцию безопасности, которая запрещает пользователям проводить междоменную загрузку и отправку экземпляров данных. Однако иногда вам пригодится возможность отключить эту функцию для определенных Web-сайтов. Данный статья расскажет, как это сделать.

Прежде, чем вы начнете: замечания по этой статье

Эта статья охватывает отдельную тему. Для дополнительной информации по XForms читайте цикл из трех статей Введение в XForms.

Пример XForms, описанный в данном совете, протестирован и работает с браузером Firefox 1.5 (с установленным расширением XForms). Раздел загрузка содержит XHTML-файл для Firefox.



В начало


Экземпляр данных

Вот экземпляр документа, который вы будете использовать в данной статье для тестирования работы XForms с Firefox (листинг 1).


Листинг 1. Экземпляр документа
                
        <DataElement xmlns="">
          <FirstName />
          <LastName />
          <Special />
        </DataElement>

Как мы можем видеть, в форме имеется три основных элемента, для которых нам потребуются экземпляры данных. После чего форма объединит для вас все имена вместе.



В начало


XForm

Вы создадите форму XForm, показанную в листинге 2 данной статьи. Части кода, которые вызовут ошибку согласно стандартной настройке в Firefox, выделены жирным шрифтом.


Листинг 2. Междоменные нарушения
                
<html
   xmlns="http://www.w3.org/1999/xhtml"
   xmlns:ev="http://www.w3.org/2001/xml-events"
   xmlns:xf="http://www.w3.org/2002/xforms">
  <head>
    <title>Enabling cross-domain submissions in Firefox</title>
    <xf:model id="nameConcat">
      <xf:instance src=http://xaxxeon.com/auctions.xml/>
      <xf:submission id="sub"
            action="http://xformstest.org/cgi-bin/showinstance.sh"
                     method="post"/>
      <xf:send submission="sub" ev:event="xforms-ready"/>
    </xf:model>
  </head>
  <body>
    Auto-submission.
  </body>
</html>

Мы можем видеть, что источником экземпляра данных является иностранный Web-сайт. Вы не захотите, чтобы сайт, который вы посещаете, делал это по умолчанию, так как не можете знать, что посылает иностранный Web-сайт в форму, или что он делает с полученными данными.



В начало


Нарушение

Загрузка этой формы в Firefox провоцирует нарушение, как можно видеть на рисунке 1. Убедитесь, что вы загружаете ее на свой Web-сервер - например, на http://localhost/xforms/crossDomain.xhtml.


Рисунок 1. Обнаруженное нарушение
Обнаруженное нарушение

Так что с этим делать? К счастью, в Firefox есть простой способ для разрешения междоменной загрузки и отправки, очень похожий на разрешение всплывающих окон только для некоторых Web-сайтов.



В начало


Разрешение междоменной загрузки и отправки в Firefox

Итак, вы хотите разрешить междоменную загрузку и отправку. Выполните следующие шаги:

  • Перейдите к Tools > Options
  • Нажмите ссылку Content
  • Отметьте кнопку-флажок Allow XForms to access other domains
  • Нажмите на кнопку Allowed Sites за этой кнопкой-флажком
  • Теперь просто введите Web-сайт (в данном случае localhost, так как XForm расположена на localhost), отметьте кнопки-флажки Load и Send (или только Load), затем нажмите Add

Вот и все! Теперь, когда вы загрузите XForm, вы должны увидеть, что появляется экземпляр данных, как показано в листинге 3.


Листинг 3. Успех!
                
Instance Data
<?xml version="1.0" encoding="UTF-8"?>
<auctionItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <auctionItem itemID="2">
    <purchaseDate>2006-09-18</purchaseDate>
    <auctionLength>600</auctionLength>
    <purchasePrice>10</purchasePrice>
    <description>Vintage hair dryer</description>
    <estimatedValue>N/A</estimatedValue>
  </auctionItem>
  <auctionItem itemID="5">
    <purchaseDate>2006-09-18</purchaseDate>
    <auctionLength>300</auctionLength>
    <purchasePrice>5</purchasePrice>
    <description>Box Lot</description>
    <estimatedValue>N/A</estimatedValue>
  </auctionItem>
</auctionItems>

Проделав эти простые изменения настроек в Firefox, вы теперь можете проводить междоменную отправку и загрузку XForms.



В начало


Заключение

Поделиться...

digg Отправить на Digg
del.icio.us Отправить на del.icio.us
Slashdot Slashdot it!

Данная статья показала функцию безопасности, выполненную в XForms с Firefox, и способ отмены этой функции в Firefox, отменяющий требования безопасности для некоторых доменов (адресов Web-сайтов). Теперь подобные проблемы не должны мешать вашей разработке с помощью XForms.




В начало


Загрузка

ОписаниеИмяРазмерМетод загрузки
пример междоменной пересылки данных в XFormscrossdomain_source.zip1KBHTTP
Информация о методах загрузки


Ресурсы

Научиться

Получить продукты и технологии
  • Получите MozzIE, элемент управления с открытым исходным кодом, который позволяет вам визуализировать XForms в IE.


Обсудить


Об авторе

Тайлер Андерсон (Tyler Anderson) получил степень бакалавра по компьютерным наукам в Brigham Young University в 2004 и степень магистра по компьютерной технике в декабре 2005 тоже в Brigham Young University. Сейчас он работает инженером в фирме Stexar Corp., расположенной в Beaverton, Ore.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



ДаНетНе знаю
 


 


12345
 


В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.

    IBM в России Конфиденциальность Контакты