Pay*_*ari 3 javascript python ajax jquery openshift
我正在试验Flask和AJAX,这里有一条简单的API路由,托管在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()
Run Code Online (Sandbox Code Playgroud)
这是Ajax调用:
$.ajax({
type:"GET",
dataType: "json",
data:'Payam',
url: "http://mypythonapp-spacepirate.rhcloud.com/hello/",
success: function(data){
buf1=data;
console.log(data);
}
})
Run Code Online (Sandbox Code Playgroud)
但这会调用此URL,结果为404。如何解决此问题?仅提及CORS并不是问题。
http://mypythonapp-spacepirate.rhcloud.com/hello/?Payam
Run Code Online (Sandbox Code Playgroud)
尝试将您的url属性更改为
url: "http://mypythonapp-spacepirate.rhcloud.com/hello/world",
Run Code Online (Sandbox Code Playgroud)
然后您将获得200的响应状态,而不是404。原因是您创建的烧瓶路由在hello /之后具有必需的参数。
编辑:关于对数据使用变量的问题的跟进
方法1:只需将参数编码添加到URL
url: "http://mypythonapp-spacepirate.rhcloud.com/hello/" + encodeURIComponent(xyz)
method2:开始使用时,将data参数用于ajax调用。我认为 jquery会将其转换为的URL查询字符串get,如下所示。注意?分隔查询字符串的开始:
http://mypythonapp-spacepirate.rhcloud.com/hello/?xyz
您可以通过签入浏览器开发工具并查看ajax调用实际请求的URL来进行验证。还要注意,在烧瓶处理程序中,您将需要检查request.query_string以获取数据,因为<name>参数为空。
| 归档时间: |
|
| 查看次数: |
3612 次 |
| 最近记录: |