javascript - 使用 AJAX 调用 Flask API

原文 标签 javascript jquery python ajax openshift

我正在试验 Flask 和 AJAX,我有一个简单的 API 路由 here ,托管在 OpenShift。我想用 Ajax 在 Javascript 文件中调用 API。 OpenShift Python 文件很简单:

from flask import Flask
app = Flask(__name__)

import json

@app.route('/hello/<name>')
def hello_world(name=None):
    str = {'key':'Hello World!', 'q':name}
    #out = {'key':str}
    res = json.dumps(str)
    return res

if __name__ == '__main__':
    app.run()

这是 Ajax 调用:
$.ajax({
    type:"GET",
    dataType: "json",
    data:'Payam',
    url: "http://mypythonapp-spacepirate.rhcloud.com/hello/",
    success: function(data){
        buf1=data;
        console.log(data);
    }
})

但这会调用这个 url 导致 404。我该如何解决这个问题?只是提一下 CORS 不是问题。
http://mypythonapp-spacepirate.rhcloud.com/hello/?Payam

最佳答案

尝试将您的 url 属性更改为

url: "http://mypythonapp-spacepirate.rhcloud.com/hello/world",

然后你会得到 200 响应状态,而不是 404。原因是你创建的 flask 路由在 hello/后面有一个必需的参数。

编辑:关于对数据使用变量的问题的后续行动
  • 方法1:只需将编码参数添加到url
    url: "http://mypythonapp-spacepirate.rhcloud.com/hello/" + encodeURIComponent(xyz)
  • 方法2:使用data ajax 调用的参数,就像你开始做的那样。我认为 jquery 会将其转换为 get 的 URL 查询字符串。 , 像这样。请注意 ?分隔查询字符串的开始:
    http://mypythonapp-spacepirate.rhcloud.com/hello/?xyz
    您可以通过检查浏览器开发工具并查看 ajax 调用实际请求的 URL 来验证这一点。另请注意,在 flask 处理程序中,您需要检查 request.query_string 以获取数据,因为 <name>参数将为空。
  • 关于javascript - 使用 AJAX 调用 Flask API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41191631/

    相关文章:

    javascript - 将简单的温度冲击脚本转换为javascript

    jquery - 如何将Galleria幻灯片添加到我的Blogspot主题

    Jquery UI嵌套的可选问题

    python - 带有稀疏矩阵的 matshow

    python - 如何在Python 3中将项目从一个列表追加到另一个列表

    javascript - Javascript 中的异步性

    javascript - 我如何更改 eslint 解析设置

    javascript - 如何测试 slim 的输入 react 性?

    jquery - AngularJs双向排序过滤器示例?

    python - 如何在 HttpResponse Django 中返回多个文件