我正在研究使用 JQuery 的 Spring MVC Showcase,但我对 JQuery 世界还是很陌生
我对研究这个例子的 JQuery 函数的行为有些怀疑。
所以,我有以下链接生成一个指向“/mapping/produces”文件夹的 HTTP 请求
<li>
<a id="byProducesAcceptJson" class="writeJsonLink" href="<c:url value="/mapping/produces" />">By produces via Accept=application/json</a>
</li>
如您所见,此链接具有名为“writeJsonLink”的类,并且对于该类,定义了单击链接时触发的以下 JQuery 函数:
$("a.writeJsonLink").click(function() {
var link = $(this); // Variable that contain the referer to the clicked link
// Execute ajax call
$.ajax({ url: this.href,
// Before send the request to the server execute the following function
beforeSend: function(req) {
if (!this.url.match(/\.json$/)) {
req.setRequestHeader("Accept", "application/json");
}
},
success: function(json) {
MvcUtil.showSuccessResponse(JSON.stringify(json), link);
},
error: function(xhr) {
MvcUtil.showErrorResponse(xhr.responseText, link);
}});
return false;
});
我的问题是我在理解 if 条件的含义时遇到了一些问题,这部分代码是什么意思?
if (!this.url.match(/\.json$/)) {
req.setRequestHeader("Accept", "application/json");
}
看到在我看来只向 HTTP 请求添加了一个标头......但我认为实际上用 JSON 做一些事情......我也有一些问题来理解 if 逻辑条件的含义......
非常感谢安德里亚