升级到v1.5时出现Jquery ajax错误

Won*_*ong 2 ajax jquery

我从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的新手,我什么也做不了?谢谢

Jaw*_*awa 5

jQuery 1.5会自动添加一个随机回调参数,但您可以通过设置jsonpjsonpCallbackjQuery ajax设置来覆盖它.

来自jQuery Ajax API:

从jQuery 1.5开始,将jsonp选项设置为false可防止jQuery将"?callback"字符串添加到URL或尝试使用"=?" 转型.在这种情况下,您还应该显式设置jsonpCallback设置.例如, { jsonp: false, jsonpCallback: "callbackName" }.

下划线参数(?_=...)是一个包含更改时间戳的参数,从而使请求URL始终显示为浏览器以前从未见过的内容并强制实际的HTTP请求.可以通过cache: true.ajax()调用添加设置(或通过全局设置启用缓存来删除参数:jQuery.ajaxSetup({cache:true});.设置默认为truedataTypes scriptjsonp.