有人可以向我解释我遇到的错误吗? - javascript

我有一个CGI脚本,该脚本导入cgi,创建访问器函数,然后尝试查找变量。该函数是:

cgi_form = cgi.FieldStorage()

def get_cgi(field, default=''):
    if cgi_form.has_key(field):
        return cgi_form[field].value
    else:
        return default

可能没有必要。但是,当我尝试将其用于电子邮件时,我尝试从XHR发送的字段之一出错了。触发问题的代码行是:

sys.stderr.write('email: ' + get_cgi('email'))

Apache日志具有:

[Wed Aug 29 11:25:33 2012] [error] [client ::1] Traceback (most recent call last):, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1]   File "/Users/jonathan/mirror/professional/calendar-todo/create_account.cgi", line 26, in <module>, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1]     sys.stderr.write('email: ' + get_cgi('email')), referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1]   File "/Users/jonathan/mirror/professional/calendar-todo/create_account.cgi", line 21, in get_cgi, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1]     if cgi_form.has_key(field):, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1]   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/cgi.py", line 580, in has_key, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1] TypeError: not indexable, referer: http://localhost/professional/calendar-todo/
[Wed Aug 29 11:25:33 2012] [error] [client ::1] Premature end of script headers: create_account.cgi, referer: http://localhost/professional/calendar-todo/

我试图模拟的客户端代码是:

document.getElementById('create_account_button').onclick = function()
    {
    var request = new XMLHttpRequest();
    request.open('POST', 'create_account.cgi');
    request.setRequestHeader('Content-Type', 'text/plain');
    request.send('email=' + encodeURIComponent(document.getElementById('create_email').value) + '&password=' + encodeURIComponent(document.getElementById('create_password').value) +  '&password_hint=' + encodeURIComponent(document.getElementById('create_password_hint').value));
    load_from_request(request);
    return false;
    }

我是否可以使用JavaScript将内容适当地发送到XHR?为什么在Python中,对get_cgi('email')的调试调用给出了“ TypeError:无法索引”,我该怎么做才能更正该错误?

参考方案

第一个问题是请求标头未设置为request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
对于过早的标头问题,它是相同的概念。在打印任何数据之前,请确保要打印内容标题。

print "Content-Type: text/html" 

通常,我会将内容类型的打印输出放在代码的顶部,这样我就可以看到任何内容都已发送回浏览器。这样,当出现代码错误时,您至少可以看到问题所在。

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

Javascript IF语句 - javascript

                        嗨,我有这段代码可以正常工作,并将两个日历显示为一个日历。我还有一个php变量$login_session,其中包含登录电子邮件地址的用户。关于如何显示[email protected]日历的任何想法(伪代码)IF $login_session == "[email protected]&#…