CGI Python, возвращая код состояния HTTP, такой как 403?

function Animal(type) {
    if (type == "cat") {
        this.__proto__ = Cat.prototype;
    } else if (type == "dog") {
        this.__proto__ = Dog.prototype;
    } else if (type == "fish") {
        this.__proto__ = Fish.prototype;
    }
}
Animal.prototype.say = function() {
    alert("This animal can't speak!");
}

function Cat() {
    // init cat
}
Cat.prototype = new Animal();
Cat.prototype.say = function() {
    alert("Meow!");
}

function Dog() {
    // init dog
}
Dog.prototype = new Animal();
Dog.prototype.say = function() {
    alert("Bark!");
}

function Fish() {
    // init fish
}
Fish.prototype = new Animal();

var newAnimal = new Animal("dog");
newAnimal.say();

Это, как гарантируют, не будет работать, поскольку __proto__ не стандартная переменная, но она работает, по крайней мере, в Firefox и Safari.

, Если Вы не понимаете, как это работает, читайте об опытной цепочке.

15
задан cfischer 11 September 2009 в 16:09
поделиться

2 ответа

print 'Status: 403 Forbidden'
print

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

sys.stdout('Status: 403 Forbidden\r\n\r\n')

может быть технически более правильным, согласно RFC (при условии, что ваш сценарий CGI не работает в текстовом режиме в Windows). Однако оба окончания строк работают везде.

18
ответ дан 1 December 2019 в 03:52
поделиться

Я думаю, вы ищете send_error . Он будет находиться на http.server в py3k.

1
ответ дан 1 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

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