Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能给我解释一下我犯的错误吗?_Javascript_Python_Ajax_Xmlhttprequest - Fatal编程技术网

Javascript 有人能给我解释一下我犯的错误吗?

Javascript 有人能给我解释一下我犯的错误吗?,javascript,python,ajax,xmlhttprequest,Javascript,Python,Ajax,Xmlhttprequest,我有一个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发送的字段之一),它

我有一个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/

我用JavaScript向XHR发送东西是否合适?在Python中,为什么get_cgi(“电子邮件”)的调试调用会给出一个“TypeError:not indexable”,我可以做些什么来纠正这个问题?

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

print "Content-Type: text/html" 

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

您的请求头不应设置为文本。它应该是:request.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);非常感谢。我已经更改了内容类型,立即的问题得到了解决。现在它给出了一个关于脚本头过早结束的错误,我想调查我的程序是否为该输入提供了适当的输出。
print "Content-Type: text/html"