The following two snippets are equivalent:
$.get("/some/url", {data: "value"}, function(json) {
// use json here
}, "json")
$.getJSON("/some/url", {data: "value"}, function(json) {
// use json here
});
Saying that a request is for JSON
means two things:
- jQuery sends an
Accept: application/json
header
- jQuery interprets the inbound response, converts it into a JavaScript Object, and passes it into the callback (so you don't have to mess with eval or other conversion mechanism).
A number of server-side frameworks (such as Rails) automatically detect the Accept
header and handle the request appropriately. If you are using a different framework or rolling your own, you can inspect the Accept
header to detect the format (instead of inspecting the parameters).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…