2013-04-25 9 views
11

मैं एक सर्वर अनुप्रयोग लिख रहा हूँ और चाहता था ग्राहक शरीर में डेटा का उपयोग करने के लिए अपने GET विधि pararmeterize करने के लिए, इस तरह के साथ:

# 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 }) 

क्या यह डिज़ाइन या बग द्वारा है?

मैं नहीं देख सकता कि documentation से क्यों।

+3

क्या आप सुनिश्चित हैं कि प्राप्त करने वाला अंत इसका समर्थन करता है? [निकायों के साथ अनुरोध प्राप्त नहीं हैं, लेकिन उम्मीद नहीं है] (http://stackoverflow.com/questions/978061/http-get-with-request-body)। – bzlm

+2

दस्तावेज़ों को भूल जाओ, http में जीईटी का अर्थ क्या है, अनुसंधान करें। – 7stud

+0

GET विधि अनुरोध निकाय का समर्थन नहीं करता –

उत्तर

11

मैं जवाब के रूप में इस ले जाएगा:

HTTP के लिए, यह निषिद्ध नहीं है, लेकिन यदि आप सर्वर के रूप में उपयोग नहीं किया जाना चाहिए सकता है (और चािहए) GET अनुरोध के शरीर पर ध्यान न दें।

संदर्भ: HTTP GET with request body

एक्सएचआर के लिए, GET और HEAD के शरीर नजरअंदाज कर दिया जाएगा (@ याकूब-कोशी द्वारा संकेत दिया)।

संदर्भ: https://xhr.spec.whatwg.org/#the-send()-method

संबंधित मुद्दे