$ http.get()与JSON数据($http.get() with JSON data)

2019-09-01 03:31发布

我正在写一个服务器应用程序,并希望客户端使用的数据在体内pararmeterize我GET方法,就像这样:

# http -v GET http://localhost:3000/url text=123 foo=bar
GET /url HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Content-Length: 29
Content-Type: application/json; charset=utf-8
Host: localhost:3000
User-Agent: HTTPie/0.4.0

{
    "foo": "bar", 
    "text": "123"
}

在AngularJS我尝试:

var params = {
    "foo": "bar", 
    "text": "123"
}

// no body
$http({
  method: 'GET',
  url: '/url',
  data: params })

// ugly url
// also has its limitation: http://stackoverflow.com/questions/978061/http-get-with-request-body
$http({
  method: 'GET',
  url: '/url',
  params: params })

// params in body, but I wanted GET
$http({
  method: 'POST',
  url: '/url',
  data: params })

这是通过设计或一个错误?

我不明白为什么从文档 。

Answer 1:

我将以此为答案:

对于HTTP,它不禁止的,但你不应该使用它作为服务器可以(也应该 )忽略的身体GET请求。

参考: HTTP GET请求与身体

对于XHR,身体GETHEAD将被忽略(通过@雅各koshy暗示)。

参考: https://xhr.spec.whatwg.org/#the-send()-method



文章来源: $http.get() with JSON data