【发布时间】:2018-07-16 07:11:43
【问题描述】:
我有一个用PythonFlask 编写的演示网络服务器,我正在使用jsonp 通过jquery 对该服务器进行ajax 调用。 url 返回 json 作为响应,但脚本无法将其解析为 json。
错误提示 Unexpected token ":". 下面是 webserver 和 ajax 调用的代码,我还注释了出现错误的行。
from flask import Flask, jsonify, render_template
app = Flask(__name__)
@app.route("/")
def index():
html = (
"""<button type="button" id="button_1">Click Me !</button>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$('#button_1').click(function() {
var url = 'http://127.0.0.1:5000/url';
alert(url);
$.ajax({
url: url,
type: 'GET',
dataType: 'jsonp',
jsonpCallback: 'processJSONPResponse',
contentType: "application/json; charset=utf-8",
complete: function(data, status, jqXHR) {
console.log(data);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(xhr.responseText);
}
});
});
</script>"""
)
return html
@app.route("/url")
def get_urls():
response = {
"urls": { # for the ajax call, I get an error as Unexpected token ":".
"url1": "/api/repos/url1",
"url2": "/api/repos/url2",
"url3": "/api/repos/url3"
}
}
return jsonify(response)
if __name__ == "__main__":
app.run(debug=True)
我对 javascript (jquery) 很陌生,无法找出问题所在。任何帮助将不胜感激。
【问题讨论】:
-
该 ajax 调用得到的响应是什么?