有人能向我解释一下我犯的一个错误吗
Could someone explain to me an error I am getting?
我有一个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:not indexable",我该怎么做才能纠正这个问题?
第一个问题是请求标头未设置为request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
。对于过早的标头问题,这是相同的概念。在打印任何数据之前,请确保您正在打印内容标头。
print "Content-Type: text/html"
通常我会把内容类型的打印输出放在代码的顶部,这样我就可以看到任何发送回浏览器的内容。这样,当你的代码错误出现时,你至少可以看到问题所在。
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 一个ajax循环有两个输出错误innerHTML
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- javascript window.location在检查firebug时给了我一个错误的url路径
- 调试器;[错误]194:11:标识符是一个保留字
- new SharedWorker(“whatever.js”)返回一个错误
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- JQuery关注上一个点击的输入错误
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 未捕获的引用错误——一个函数工作而另一个不起作用
- 图表API错误——[一个或多个参与者未能绘制()]