我有两个几乎相同的JQuery请求,我在页面加载后发出,第一个请求json为当前路径,第二个请求不同的url。不过,我很惊讶地看到第一个请求type
是text/html
,第二个请求是application/json
。我原本预计两者都是application/json
。请求看起来像这样:
$.ajax({
url: window.location.pathname,
type: 'GET',
dataType: 'json',
success: doSomething
});
$.ajax({
url: '/tags',
type: 'GET',
dataType: 'json',
success: doSomethingElse
});
然而,在我看到的网络标签中:
我错过了什么?
答案 0 :(得分:2)
dataType: 'json'
有两个主要影响:
如果服务器具有不同格式的内容表示,则可以使用HTTP content negotiation来决定放入响应的内容。大多数服务器都没有。
看起来你的不是。它将始终返回第一个URL的HTML,并始终返回第二个URL的JSON。
如果您希望服务器关注Accept标头,则必须对其进行配置(以及提供文档的JSON版本以及HTML版本)。
答案 1 :(得分:1)
显示的内容类型是服务器发送给您的响应类型,而不是您要发送给服务器的请求类型。