0
我已經搜索了高和低的答案這個問題,我在我的智慧結束。使用多部分/表單數據導致400服務器錯誤使用瓶,wfastcgi,IIS 6
我正在使用IIS 6在Windows Server 2008上運行一個小型Web服務。該Web服務是使用Flask以Python編寫的,而且我正在使用WSGI來連接IIS和Flask。直到我決定允許上傳圖片爲止,它一直工作正常。只要我把enctype="multipart/form-data"
一個<form>
標籤內,任何試圖提交表單導致400服務器錯誤說
壞請求
瀏覽器(或代理)發送的請求,該服務器可以不明白。
我搜索了互聯網,似乎沒有人有過我的特殊問題。有問題的形式看起來像
<form method="POST" action="/log?case={{ CASE.id }}" enctype="multipart/form-data">
<input type="hidden" name="case_id" value="{{ CASE.id }}">
<textarea rows="3" cols="75" name="comment"></textarea><br>
Case Status:
{% if CASE.status=="Closed" %}
<select name="status">
<option value="Parked">Parked</option>
<option value="Closed" SELECTED>Closed</option>
<option value="Open" >Open</option>
</select>
{% elif CASE.status=="Open" %}
<select name="status">
<option value="Parked">Parked</option>
<option value="Closed" >Closed</option>
<option value="Open" SELECTED>Open</option>
</select>
{% elif CASE.status=="Parked" %}
<select name="status">
<option value="Parked" SELECTED>Parked</option>
<option value="Closed">Closed</option>
<option value="Open">Open</option>
</select>
{% else %}
<select name="status">
<option value="Parked">Parked</option>
<option value="Closed">Closed</option>
<option value="Open" SELECTED>Open</option>
</select>
{% endif %}
<br>
Computer Location:
{% if CASE.location=="Owner" %}
<select name="location">
<option value="Storage" >Storage</option>
<option value="Owner" SELECTED >Owner</option>
</select>
{% elif CASE.location=="Storage" %}
<select name="location">
<option value="Owner" >Owner</option>
<option value="Storage" SELECTED>Storage</option>
</select>
{% endif %}
<br>
<input type="file", name="image">
<br />
<input type="submit" name="submit" value="Submit">
</form>
和請求處理程序看起來像
def handleCaseComment(form, files, case_id):
# def handleCaseComment(form, case_id):
# create SQLAlchemy session
sess = db.session
# get case comment information
comment = form['comment']
status = form['status']
location = form['location']
image = form['image']
if image == "":
image = None
username = session['username']
technician = Technician.query.filter_by(username=username).first()
case = Support_Request.query.filter_by(id=case_id).first()
# create the case comment
caseComment = Case_Comment(author=technician,
content=comment,
comp_loc=location,
comp_status=status,
case=case,
image=image)
sess.add(caseComment)
sess.commit()
太謝謝你了!
首先,服務器告訴瀏覽器,它是**瀏覽器**錯誤,而不是服務器錯誤。 400錯誤單方面意味着「嘿,瀏覽器,你搞砸了。」這不是內部破壞的情況,比如訪問'None'變量的字段,或者除以0。現在,你的意圖是?可能不會,我懷疑這是在某個地方啓用過濾器的簡單問題。你有沒有嘗試過任何調試語句?它有沒有得到你的請求處理程序? – hunteke