使用json查询用于Flask-Restless的uri查询

时间:2013-02-25 22:34:13

标签: javascript jquery flask

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

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'
});

2 个答案:

答案 0 :(得分:2)

$.ajax({
    url: 'blah',
    data: JSON.stringify(data),
    dataType: 'json',
    contentType: 'application/json; charset=utf-8'
});

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

答案 1 :(得分:1)

首先,我很确定这些查询需要转义。

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