我寫了下面的HTML代碼入門400錯誤的請求
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/css/grafana_style_sheet.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$("#Click").click(function(){
alert('hi '+ $('#databases').val());
var data1 = new Object();
data1.name = $('#databases').val();
data1.dbname = 'grafana';
alert(data1.dbname + " " + data1.name);
$.ajax({
url : "dashboards",
type : 'POST',
data : 'data1',
dataType : "text",
success : function(){
data = JSON.parse(data);
console.log("hi " + data);
}
});
});
});
</script>
</head>
<body>
<div id="header">Report Suites</div>
<form>
<fieldset id = "fieldset">
<legend align = "center"><font color= "#00008B"><strong>Select your Report Suite<strong></font></legend>
<select id ="databases" name = "db">
<option value = "">--Select From following--</option>
<option value = "HARMONY">HARMONY</opton>
<option value = "CAMPS">CAMPS</opton>
<option value = "QBSU">QBSU</opton>
<option value = "SIMBA">SIMBA</opton>
</select>
<br><br>
<button type = "button" id = "Click"> Click Me!!</button>
</fieldset>
</form>
<div id ="placeholder"></div>
</body>
</html>
要運行上面的HTML代碼,我用瓶,以從表格(見上文)發送數據和運行寫了下面的Python程序基於它的查詢。
from flask import Flask, render_template, json, request
from flask import Flask, request, abort, jsonify
from flaskext.mysql import MySQL
import MySQLdb
app = Flask(__name__)
def connection(database):
db = MySQLdb.connect("localhost","root","",database)
cursor = db.cursor()
return cursor
@app.route("/")
def main():
return render_template('grafana_try1.html')
@app.route("/dashboards",methods=['POST'])
def connect():
dtb = request.form['dbname']
b = request.form['name']
conn = connection(dtb)
conn.execute("SELECT * FROM SuiteDetails WHERE RS_name=%s",b)
results = conn.fetchall()
json_return_value =[]
for result in results:
table_data = {'RS_name' : result[0], 'RS_id' : result[1], 'Staging_db' : result[2], 'Trans_db' : result[3], 'Base_Date' : result[4], 'graph_link' : result[5]}
json_return_value.append(table_data)
print json.dumps(json_return_value)
return json.dumps(json_return_value)
if __name__ == "__main__":
app.run(debug = True)
當我在firefox上運行它時,我得到了400個BAD REQUEST響應。
請告訴我我做錯了什麼。
你能檢查瀏覽器開發工具的「網絡」部分中提出的請求嗎? – jlnabais
我在firefox上運行它,並使用螢火蟲。它給了一些請求頭如下:接受\t text/plain,*/*; Q = 0.01 接受編碼\t gzip的,放氣 接受語言\t 的en-US,連接; Q = 0.5 緩存控制\t 無緩存 連接\t 保活 Content-Length的\t Content-Type \t application/x-www-form-urlencoded;字符集= UTF-8 主機\t 127.0.0.1:5000 附註\t 無緩存 的Referer \t http://127.0.0.1:5000/ 的User-Agent \t 的Mozilla/5.0(Macintosh上;英特爾的Mac OS X 10.10; rv:38.0)Gecko/20100101 Firefox/38.0 X-Requested-With \t XMLHttpRequest – sk215
這是你要的 – sk215