как включить перекрестную РЕГИСТРАЦИЮ домена в PHP?

Цель Расположить шаблона состоит в том, чтобы обеспечить механизм для чистки и управляемых и неуправляемых ресурсов и когда это происходит, зависит от того, как Расположить метод называют. В Вашем примере использование Располагает, на самом деле не делает ничего связанного для расположения, начиная с очистки списка не оказывает влияния на тот располагаемый набор. Аналогично, вызовы для установки переменных в NULL также не оказывают влияния на GC.

можно смотреть на этот статья для получения дополнительной информации о том, как реализовать Расположить шаблон, но это в основном похоже на это:

public class SimpleCleanup : IDisposable
{
    // some fields that require cleanup
    private SafeHandle handle;
    private bool disposed = false; // to detect redundant calls

    public SimpleCleanup()
    {
        this.handle = /*...*/;
    }

    protected virtual void Dispose(bool disposing)
    {
        if (!disposed)
        {
            if (disposing)
            {
                // Dispose managed resources.
                if (handle != null)
                {
                    handle.Dispose();
                }
            }

            // Dispose unmanaged managed resources.

            disposed = true;
        }
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
}

методом, который является самым важным здесь, является Расположение (bool), который на самом деле работает при двух различных обстоятельствах:

  • расположение == верный: метод назвал прямо или косвенно код пользователя. Могут быть расположены управляемые и неуправляемые ресурсы.
  • расположение == ложь: метод назвало время выполнения из финализатора, и Вы не должны ссылаться на другие объекты. Только неуправляемые ресурсы могут быть расположены.

проблема с простым разрешением GC заботиться о выполнении очистки состоит в том, что Вы не имеете никакого реального контроля, когда GC выполнит цикл сбора (можно назвать GC.Collect (), но Вы действительно не были должны), таким образом, ресурсы могут остаться вокруг дольше, чем необходимый. Помните, вызов Располагают (), на самом деле не вызывает цикл сбора или всегда заставляет GC собираться/освобождать объект; это просто обеспечивает средства для более детерминировано очистки используемые ресурсы, и скажите GC, что эта очистка была уже выполнена.

смысл IDisposable и расположить шаблона не о непосредственном освобождении памяти. Единственное время вызов для Расположения будет на самом деле даже иметь шанс непосредственного освобождения памяти, - когда это обрабатывает расположение == ложный сценарий и управление неуправляемыми ресурсами. Для управляемого кода не будет на самом деле исправлена память, пока GC не выполняет цикл сбора, который Вы действительно не имеете никакого контроля над (кроме вызова GC.Collect (), который я уже упомянул, не хорошая идея).

Ваш сценарий не действительно действителен, так как строки в.NET не используют unamanged ресурсов и не реализуют IDisposable, нет никакого способа вынудить их быть "очищенными".

11
задан 24 August 2009 в 21:48
поделиться

2 ответа

То, что у вас есть, должно работать нормально - формы были до политики одного и того же происхождения - вам разрешено отправлять данные в разные домены.

Если бы я рискнул предположить, я бы говорят, что туда каким-то образом попадает перенаправление 301 или 302? Следуйте заголовкам HTTP с помощью Firebug, например, чтобы быть уверенным.

18
ответ дан 3 December 2019 в 05:35
поделиться

Как уже говорили другие, с этим не должно возникнуть проблем. Я бы посоветовал заменить ваш скрипт test.php чем-нибудь простым, вроде этого

<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";

Вы должны обнаружить, что он работает, а это значит, что вина лежит где-то на «реальном» скрипте ...

2
ответ дан 3 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: