这就是事情:
我为论文创建了一个完全自定义的服务器。在客户端,我希望能够请求服务器处理的数据库调用。然后它在HTTP中给出响应,以JSON提供查询结果。
我现在打电话的方式是:使用JQuery' getJSON()'方法
虚拟示例:
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('./db/q="select * from *"', function(result){
process(result);
});
});
</script>
在浏览器中使用此脚本运行网页会在服务器端生成以下HTTP标头:
request: GET /db/q="select * from *"
Host: 127.0.0.1:9000
Connection: keep-alive
Accept: text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Referer: http://127.0.0.1:9000/web/widgets/gauge.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4,id;q=0.2
我的问题:从服务器到浏览器的HTTP 1.1响应如何显示,以便从“结果”中的响应中获取JSON有效负载。浏览器中的javascript中的参数?
答案 0 :(得分:1)
要使用jQuery通过AJAX获取JSON数据,您不需要使用getJSON。如果他们在回复中看到任何$.get
,$.post
,$.ajax
,则会自动解析JSON。
身体没有特定的格式。只要它是有效的JSON,jQuery就会将JSON对象的根目录放入result
。例如,如果您的回复是{foo: 'bar'}
,则您的result
对象的result.foo
广告将设置为"bar"
。
在您的回复中,要使jQuery自动将内容视为JSON,您需要指定标题Content-Type: application/json
。所有其他标题都无关紧要。
将查询从GET参数移动到POST参数可能是一个更好的主意,因此您不必在查询字符串上对其进行url-encode。