【问题标题】:GET uri query with a json for Flask-Restless获取带有 json 的 URI 查询,用于 Flask-Restless
【发布时间】:2013-02-25 22:34:12
【问题描述】:

在 Flask-Restless 文档中,(“进行搜索查询”)我们可以发现,以特殊的 uri 格式查询框架 que 可以查询数据库。

Flask-Restless

http://localhost:5000/api/person?q={"filters":[{"name": "age", "op": "ge", "val": 10}]}
http://localhost:5000/api/person?q={"filters":[{"name": "age", "op": "ge", "val": 10},{"name": "age", "op": "le", "val": 20}]}
...

如何以简单的方式使用 jQuery.ajax 或 XMLHttpRequest 进行 GET 查询?

我尝试过使用 jQuery.param()、encondeURI + JSON.stringify() 进行编码...

抱歉,这一定很明显,但我无法让它发挥作用。

 var url = "http://localhost:5000/api/person?";
 var obj = {"filters":[{"name": "age", "op": "ge", "val": 10}]};
 var jsn = JSON.stringify(obj);
 var encuri = encodeURI(url + "q=" + jsn); //NOPE
 var par = jQuery.param(jsn); //NOPE
 var raw = XMLHttpRequest();raw.open("GET", url + "q=" + encuri);raw.send() //NOPE
 ...

解决方案

$.ajax({
    url: 'http://localhost:5000/api/user',
    data: "q=" + JSON.stringify({"single":true,"filters":[{"name": "id", "op": "eq", "val": 1}]}),
    dataType: 'json',
    contentType: 'application/json; charset=utf-8'
});

【问题讨论】:

  • 您介意重新表述您的问题吗?我可以看到它的预期目标
  • 谢谢!你的解决方案就像一个魅力!

标签: javascript jquery flask


【解决方案1】:
$.ajax({
    url: 'blah',
    data: JSON.stringify(data),
    dataType: 'json',
    contentType: 'application/json; charset=utf-8'
});

您需要页面中包含 json2.js(和 jquery)。

【讨论】:

  • $.ajax({ url: 'http://localhost:5000/api/user', data: "q=" + JSON.stringify({"single":true,"filters":[{"name": "id", "op": "eq", "val": -1}]}), dataType: 'json', type:"GET", contentType: 'application/json; charset=utf-8' }); 这似乎有效。谢谢
  • 怎么样:var data = encodeURIComponent("q="+JSON.stringify({"foo":"bar"}));
  • Jquery uri 已经为您编码。查看 $.ajax 的源代码可能会有所帮助。
【解决方案2】:

首先,我相当肯定这些查询需要转义。

假设 URI 的编码正确(请参阅 encodeURI 和 encodeURIComponent),您应该能够执行 jQuery.parseJSON。

【讨论】:

    猜你喜欢
    • 2013-01-22
    • 2013-10-16
    • 2016-09-10
    • 2018-08-15
    • 2013-03-04
    • 2019-02-18
    • 2018-03-02
    • 2014-10-02
    • 2014-04-05
    相关资源
    最近更新 更多