为什么通过方法“ get”使用Chrome传递URL,然后WSGI environ ['PATH_INFO']为空,但是使用IE则会获取environ ['PATH_INFO']

时间:2018-07-21 03:48:19

标签: jinja2 wsgi

我正在Debian 9上使用python 2.7.1+。客户端/服务器在同一台计算机上。 HTML形式为:

<form method="get" action="parsing_get">

python代码是:

def run_server(environ, start_response):
    d = parse_qs(environ['QUERY_STRING'])
    print('input is:')
    print(environ['QUERY_STRING'])
    print(environ)
    start_response('200 OK', [('Content-Type', 'text/html')])
    geturl = environ['PATH_INFO']
    for item in url:
        if item[0] == geturl:
            return item[1]()
    else:
        return '404'

当我使用Chrome时,我得到的environ ['PATH_INFO']为空,但是我使用IE进行测试,我将得到该用户发布的environ ['PATH_INFO']。 Chrome的结果是:

  

输入为:

     

{'HTTP_REFERER':'http://localhost:8000/home/parsing_get.wsgi?name=1&code=2&gender=3&team=4&team_leader_name=5',   'SERVER_PROTOCOL':'HTTP / 1.1','SERVER_SOFTWARE':'WSGIServer / 0.1   Python / 2.7.13”,“ HOSTTYPE”:“ x86_64”,“ REQUEST_METHOD”:“ GET”,   'LOGNAME':'root','USER':'root','HOME':'/ root','QUERY_STRING':   ” ,“ PATH” .....}

     

您可以设置HTTP_REFERER的参数为   parsing_get.wsgi?name = 1&code = 2&gender = 3&team = 4&team_leader_name = 5。但是   'QUERY_STRING':'',为空。

然后我使用IE进行测试:

  

输入的是:name = 1&popo = 2&gender = 3&team = 4&team_leader_name = 5   {'HTTP_REFERER':'http://localhost:8000/home/','SERVER_PROTOCOL':   'HTTP / 1.1','SERVER_SOFTWARE':'WSGIServer / 0.1 Python / 2.7.13',   'HOSTTYPE':'x86_64','REQUEST_METHOD':'GET','LOGNAME':'root',   'USER':'root','HOME':'/ root','QUERY_STRING':   '名称= 1&code = 2&gender = 3&team = 4&team_leader_name = 5','QUERY_STRING'   得到参数,它是正确的。

是什么原因造成了这种现象,应如何解决?

0 个答案:

没有答案