js/jq获取url中携带的参数

博客展示了一段JQ代码,定义了一个获取查询字符串的函数$.getQueryStr。该函数会先检查缓存,若存在则直接返回,否则通过正则表达式匹配查询字符串中的指定键值,并将结果存入缓存后返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS:

JQ:

(function($){
        var cache = {};
        $.getQueryStr = function(keyVal){
            if(keyVal in cache){
                return cache[keyVal]
            }
            var reg =new RegExp("(^|&)"+keyVal+"=([^&]*)(&|$)");
            var r = window.localtion.search.substr(1).match(reg);
            return cache[keyVal] = r != null? decodeURIComponent(r[2]): null
        }
    })(jQuery) 

jQuery的`$.post()`函数中,如果你想要发送HTTP请求并带上cookies,通常情况下默认情况下,jQuery会自动处理浏览器的cookie,并将其包含在请求头中。然而,有时候可能需要手动设置某些选项才能确保cookies被发送。 如果你发现cookies没有随请求一起发送,可能是以下几个原因: 1. **默认配置**:如果在你的代码中设置了`$.ajaxSetup()`,可能覆盖了默认的cookie传递行为。检查是否有对`beforeSend`或`xhrFields`的自定义配置。 2. **跨域限制**:如果目标服务器有同源策略限制(CORS),只有在同一域名下的请求才会自动携带cookies。你需要确保目标地址与你的网站属于同一域名。 3. **异步特性**:`$.post()`默认是异步请求,cookies只会在同步请求(`async: false`)下才被发送。如果不是同步请求,可能不会看到cookie。 4. **`.withCredentials`属性**:对于跨域请求,如果开启了`$.ajax`的`.withCredentials`属性,jQuery会将cookies包括在请求里。如果没设置,cookies可能不会发送。 你可以尝试添加额外的配置项,例如: ```javascript $.post('your-url', data, function(response) { // ... }, { xhr: function() { var xhr = new window.XMLHttpRequest(); xhr.withCredentials = true; // 如果是跨域且需带cookie return xhr; }, crossDomain: true, cache: false // 避免缓存影响 }); ``` 然后检查是否cookies已成功添加到请求头中。如果还有问题,请检查浏览器的开发者工具网络面板查看详细的请求信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值