Получение запроса прервано в Internet Explorer 9 - PullRequest
2 голосов
/ 28 сентября 2011

Если вы зайдете на сайт lab.buffspec.com ОСОБЕННО, используя Internet Explorer 9, выберете gildan 6.1, hanes 6.1 или gildan hood, а затем нажмете кнопку «Получить цену», вы увидите, что, несмотря на обновление количества, Общая стоимость не показана. Это происходит в Internet Explorer 9 только для этих 3 рубашек, остальные работают нормально. И это происходит только в IE9, сайт отлично работает в Firefox и Chrome. Когда я выбираю Инструменты разработчика в IE9 и перехожу на вкладку «Сеть» и начинаю захват, я обнаруживаю, что запрос показывает «(Прервано)», а вкладка инициатора показывает «(Ожидание)».

Кто-нибудь знает, что здесь происходит? Я не проверял другие версии Internet Explorer.

Кроме того, ответ и запрос представлены в формате XML.

 public static function getPricingXml(event:NumericStepperEvent = null):XML
    {
        for each (var side:String in ['front', 'back']) {
            var workspace:Canvas = mx.core.Application.application[side + 'Workspace'];

            var colors:Array = new Array();

            for each (var e:* in workspace.getChildren()) { 
                if (e is Image && e.includeInLayout) {
                    for each (var color:String in e.colors) {
                        if (color) {
                            color = color.toLowerCase();

                            if (color && colors.indexOf(color) == -1) {
                                colors.push(color);
                            }

                        }
                    }
                }
            } 

            mx.core.Application.application[side + "TotalColors"].text = colors.length > 4 ? 4 : colors.length;
        }

        var xml:XML =   <products>
                            <product requiresUndercoat={mx.core.Application.application.color.type !== 'white'}>
                                <color hexValue={mx.core.Application.application.color.hex_color} />
                                <sides>
                                    <front totalColors={mx.core.Application.application.frontTotalColors.text} />
                                    <back totalColors={mx.core.Application.application.backTotalColors.text} />
                                </sides>
                                <sizes />
                                {mx.core.Application.application.names.getXml()}
                            </product>
                        </products>;

        var i:int = 0;
        for each (var size:Object in mx.core.Application.application.color.sizes) {
            xml.product.sizes.appendChild(<size name={size.name} abbreviation={size.abbreviation} quantity={mx.core.Application.application.priceSteppers[i++].value} price={size.price} />);
        }

        return xml;
    }

Это гибкая функция, которая создает XML-запрос при нажатии кнопки «Получить цену».

<mx:GridItem horizontalAlign="right" width="100%" fontWeight="normal" verticalAlign="middle">
                                        <mx:NumericStepper id="priceSteppers" value="0" maximum="599" fontSize="12" change="getPrices.send({ data: com.buffspec.Lab.getPricingXml(event) });" />
                                    </mx:GridItem>

Это код для степпера, который увеличивает количество и должен вызывать кнопку получения цены.

<mx:HTTPService id="getPrices" url="http://www.buffspec.com/store/lab/getPricing.php" resultFormat="e4x" />

Наконец, getPrices - это httpservice, который получает соответствующий результат из http://www.buffspec.com/store/lab/getPricing.php в виде XML-файла.

Я заметил, что тип контента «text / plain» для запроса и ответа, если это что-то значит. Также ответ HTTP / 200, поэтому я не знаю, ПОЧЕМУ он прерывается.

1 Ответ

0 голосов
/ 05 октября 2011

Ну, я наконец понял это.URL-адрес, который отправляется с помощью метода GET (по умолчанию для e4x), содержит более 2083 символов, что является верхним пределом Internet Explorer.В тот момент, когда Internet Explorer получает URL такого размера, он просто прерывает выполнение метода GET.Надеюсь, что это поможет любому с подобной проблемой.

...