return json if jsonp has not callback (#1438)
return json if jsonp has not callback
This commit is contained in:
		@ -695,7 +695,12 @@ func (c *Context) SecureJSON(code int, obj interface{}) {
 | 
			
		||||
// It add padding to response body to request data from a server residing in a different domain than the client.
 | 
			
		||||
// It also sets the Content-Type as "application/javascript".
 | 
			
		||||
func (c *Context) JSONP(code int, obj interface{}) {
 | 
			
		||||
	c.Render(code, render.JsonpJSON{Callback: c.DefaultQuery("callback", ""), Data: obj})
 | 
			
		||||
	callback := c.DefaultQuery("callback", "")
 | 
			
		||||
	if callback == "" {
 | 
			
		||||
		c.Render(code, render.JSON{Data: obj})
 | 
			
		||||
	} else {
 | 
			
		||||
		c.Render(code, render.JsonpJSON{Callback: callback, Data: obj})
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// JSON serializes the given struct as JSON into the response body.
 | 
			
		||||
 | 
			
		||||
@ -596,6 +596,20 @@ func TestContextRenderJSONP(t *testing.T) {
 | 
			
		||||
	assert.Equal(t, "application/javascript; charset=utf-8", w.HeaderMap.Get("Content-Type"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that the response is serialized as JSONP
 | 
			
		||||
// and Content-Type is set to application/json
 | 
			
		||||
func TestContextRenderJSONPWithoutCallback(t *testing.T) {
 | 
			
		||||
	w := httptest.NewRecorder()
 | 
			
		||||
	c, _ := CreateTestContext(w)
 | 
			
		||||
	c.Request, _ = http.NewRequest("GET", "http://example.com", nil)
 | 
			
		||||
 | 
			
		||||
	c.JSONP(201, H{"foo": "bar"})
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, 201, w.Code)
 | 
			
		||||
	assert.Equal(t, "{\"foo\":\"bar\"}", w.Body.String())
 | 
			
		||||
	assert.Equal(t, "application/json; charset=utf-8", w.HeaderMap.Get("Content-Type"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that no JSON is rendered if code is 204
 | 
			
		||||
func TestContextRenderNoContentJSON(t *testing.T) {
 | 
			
		||||
	w := httptest.NewRecorder()
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user