我在网页上添加了一个带有以下标记的链接:
<a href="" onclick="FiltrarxUnidadPolitica(1)">
<label class="filter-item-title">
Distrito Capital
</label>
<label class="filter-item-quantity">
(3)
</label>
</a>
点击链接时调用的js函数如下:
function FiltrarxUnidadPolitica(iIdUnidadPolitica, bLimpiarPropiedad) {
$.ajax({
data: { iIdUnidadPolitica, bLimpiarPropiedad },
url: "/Home/ListadoInmuebles",
type: 'POST',
});
}
我遇到的问题是当点击链接并执行js功能时,浏览器向服务器发出两个请求,如插图所示(待处理呼叫),第一个POST呼叫包含在js函数和第二个是GET调用,我不知道如何启动。
有谁知道GET电话的来源?
有人能给我一些关于我必须寻找的地方的线索吗?
答案 0 :(得分:0)
浏览器会关注您的链接,因为您还没有告诉它不要关注它。 (href=""
与&#34;当前页面相同。&#34;)
有几种方法可以阻止:
请勿使用链接查看未链接的内容,使用input type="button"
或button
并对其进行样式设置以查看您希望它的外观(此也将帮助辅助软件)。
(如果您使用button
,请确保其不在form
或type="button"
;默认的按钮类型是,奇怪的,"submit"
。)
使用jQuery而不是onclick
属性连接您的函数,并在事件对象上调用preventDefault
。
将href
设为javascript:;
<a href="javascript:;" onclick="FiltrarxUnidadPolitica(1);">
(或href="javascript:void(0)"
。)
将href
设为#anchor-that-does-not-exist
(不要使用href="#"
,除非您希望在关注链接时页面滚动到顶部。)
将return false
添加到onclick
:
<a href="" onclick="FiltrarxUnidadPolitica(1); return false;">
从DOM0属性样式处理程序返回false
会阻止默认操作;更多关于我的博客:The true story on return false
。
可能还有其他人......
答案 1 :(得分:-2)
预检请求
与简单请求(如上所述)不同,首先是“预检”请求 在另一个上向资源发送HTTP OPTIONS请求标头 域,以确定实际请求是否安全 发送。跨站请求是这样的预检,因为它们可能 对用户数据有影响。特别是,请求是 预防如果:
它使用GET或POST以外的方法。此外,如果使用POST发送 使用除以外的Content-Type请求数据 application / x-www-form-urlencoded,multipart / form-data或text / plain, 例如如果POST请求使用XML向服务器发送XML有效负载 application / xml或text / xml,然后请求被预检。它设定 请求中的自定义标头(例如,请求使用标头,例如 X-PINGOTHER)
资料来源:MDN