覆盖所有来自javascript的请求
Override all requests from javascript
我有一个asp.net应用程序。我需要实现,每个请求服务器的页面将包含一个额外的参数在查询字符串。我的想法是在javascript中捕获所有请求并添加此参数。
我可能会使用jQuery选择器的每一个链接,并改变它的href和重写jQuery ajax添加这个参数的请求,但这不是最好的解决方案。
这在JS中是可能的吗?
谢谢,Bartek
您可以为页面上的每个链接添加事件处理程序:
//use jQuery 1.7's `.on()` to bind the event handler
$('a').on('click', function (e) {
//stop the default click from happening
e.preventDefault();
//setup the extra query-string parameter
var extra = '?your_extra=true';
//if the link clicked already has a query-string then use an ampersand rather than a question mark
if (this.href.indexOf('?') > 0) {
extra = '&your_extra=true'
}
//direct the user to the requested page
window.location = this.href + extra;
});
您可以使用beforeSend
函数在AJAX请求发送之前更改它们:http://api.jquery.com/jquery.ajax/
对于锚标记,它就像;
$(document).delegate('a', 'click', function() {
this.href = (this.href.indexOf("?") > -1 ? '&' : '?') + 'magicParam=4';
});
如果你使用的是jQuery 1.7,你可以这样做;
$(document).on('click', 'a'function() {
this.href = (this.href.indexOf("?") > -1 ? '&' : '?') + 'magicParam=4';
});
如果你想要考虑表单、AJAX请求等,你必须单独管理它们。当然,如果你有一个window.location.href = blahblahblah
,这些也不会被满足。
如果你想处理AJAX请求,jQuery有一个很好的beforeSend
方法,你可以添加到你的jQuery.ajaxSetup
来修改所有的url
的目标。
相关文章:
- 使用密码对话框Javascript请求帮助
- 如何使用JavaScript请求网页
- JavaScript请求/操作框架或工具包
- Microsoft认知服务JavaScript请求'访问控制允许来源'
- var someSome=(函数(){..}());一个奇怪的javascript请求
- 如何获得只响应的渲染javascript请求
- Rails控制器操作可以同时处理html和javascript请求吗
- 自动为 JavaScript 请求添加源映射标头
- Google Geocoder 在 url 和 javascript 请求之间有不同的结果
- 通过javascript请求和响应第三方域
- 使用 JavaScript 请求 HTML 页面(Angular 应用程序)
- 如何使用 javascript 请求库忽略无效的 SSL 证书
- 如何使用 PHP 或 JavaScript 请求超过 10000 次的 Steam API
- 定期的javascript请求停止发生
- 无论如何,要将这个JavaScript请求安全地发送到PHP-(这是不可能的)
- 跨域脚本javascript请求
- Web服务和Javascript请求位于同一本地主机端口上
- 来自android的实时javascript请求或来自Controller Cakephp.php的调用javascri
- 非常简单的javascript请求.抓斗元件ID
- Javascript:请求解释