我从v1.4.4升级到v1.5.我想我发现了下面的问题
$(document).ready(function(){
// Get token on page load.
update_csrf_token();
Run Code Online (Sandbox Code Playgroud)
功能看起来像这样...... 编辑
function update_csrf_token()
{
$.ajax({
type: "GET",
url: "<?php echo site_url('includes/csrf_token/'); ?>",
dataType: "json",
jsonp: false,
jsonpCallback: "callbackName",
success: function(data) {
csrf_token = data.csrf_token;
return data.csrf_token;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我在firebug中查找了ajax请求,它似乎在url的末尾添加了?_ = 1297353567948,这使得csrf令牌无法生成.我如何摆脱这一点,或者它是1.5的新手,我什么也做不了?谢谢
jQuery 1.5会自动添加一个随机回调参数,但您可以通过设置jsonp和jsonpCallbackjQuery ajax设置来覆盖它.
从jQuery 1.5开始,将jsonp选项设置为false可防止jQuery将"?callback"字符串添加到URL或尝试使用"=?" 转型.在这种情况下,您还应该显式设置jsonpCallback设置.例如,
{ jsonp: false, jsonpCallback: "callbackName" }.
下划线参数(?_=...)是一个包含更改时间戳的参数,从而使请求URL始终显示为浏览器以前从未见过的内容并强制实际的HTTP请求.可以通过cache: true为.ajax()调用添加设置(或通过全局设置启用缓存来删除参数:jQuery.ajaxSetup({cache:true});.设置默认为truedataTypes script和jsonp.
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |