相关疑难解决方法(0)

带请求正文的HTTP GET

我正在为我们的应用程序开发一个新的RESTful Web服务.

在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.

或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.

我的问题:

  • 这完全是一个好主意吗?
  • HTTP客户端在GET请求中使用请求主体会有问题吗?

http://tools.ietf.org/html/rfc2616

rest http http-get

1896
推荐指数
19
解决办法
98万
查看次数

在 JavaScript 中发送带有正文的 GET 请求 (XMLHttpRequest)

我必须与从 GET 请求正文中获取参数的 API 进行交互。我知道这可能不是最好的主意,但它是 API 的构建方式。

当我尝试使用 构建查询时XMLHttpRequest,看起来负载根本没有发送。您可以运行它并查看网络选项卡;请求已发送,但没有正文(在最新的 Chrome 和 Firefox 中测试):

const data = {
  foo: {
    bar: [1, 2, 3]
  }
}
const xhr = new XMLHttpRequest()
xhr.open('GET', 'https://my-json-server.typicode.com/typicode/demo/posts')
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
xhr.send(JSON.stringify(data))
Run Code Online (Sandbox Code Playgroud)

诸如 axios 之类的库是基于 XMLHttpRequest 构建的,因此它们也无法正常工作...

有没有办法在 JavaScript 中实现这一点?

javascript ajax rest xmlhttprequest http-get

18
推荐指数
1
解决办法
2万
查看次数

在Python中解析类似字典的URL参数

我正在使用Python实现服务器端过滤以服务KendoUI的Grid组件.

我面临的问题是它默认生成的AJAX调用似乎与Flask的内置URL解析器和Python的urlparse模块不兼容.

这是我遇到问题的查询字符串类型的人为样本: a=b&c=d&foo[bar]=baz&foo[baz]=qis&foo[qis]=bar

这是我要去的结果:

{
    'a': 'b',
    'c': 'd',
    'foo': {
        'bar': 'baz',
        'baz': 'qis',
        'qis': bar'
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,request.args如果传递给Flask端点,这就是你从中得到的:

{
    'a': 'b',
    'c': 'd',
    'foo[bar]': 'baz'
    'foo[baz]': 'qis'
    'foo[qis]': 'bar'
}
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,在实践中,结构可以是几层深.您将列过滤foo到值等于的行的基本调用'bar'将产生以下内容:

{
    'filter[logic]': 'and',
    'filter[filters][0][value]': 'bar',
    'filter[filters][0][field]': 'foo',
    'filter[filters][0][operator]': 'eq'
}
Run Code Online (Sandbox Code Playgroud)

我检查了RFC,它要求查询字符串只包含"非分层"数据.虽然我认为它指的是URI所代表的对象,但我没有在规范中找到这种类型的数据结构.

我开始编写一个函数,它将获取params的字典并返回它们所代表的嵌套构造,但我很快就意识到这是一个细微的问题,而且肯定有人在那之前遇到过这个问题.

是否有人知道要么以我想要的方式解析这些参数的模块,要么是一种优雅的解析方法,我可能会忽略它?

python flask kendo-ui

9
推荐指数
1
解决办法
3564
查看次数

在backbone.js中添加access_token

在我的REST服务器中,它要求access_token存在于每个请求中.即在POSTing数据中,access_token需要与属性一起提交.

如何配置backbone.js以将access_token添加到每个GET,PUT,POST和DELETE请求?

谢谢.

javascript rest backbone.js

5
推荐指数
1
解决办法
1965
查看次数