使用 ajax 传递 # 值不起作用

Passing # values with ajax not working

本文关键字:不起作用 传递 ajax 使用      更新时间:2023-09-26

我试图通过 Ajax 通过 Ajax 工作,方法是在 dom ready 上调用它:

$.ajax({
    url: 'http://debug.build.phonegap.com/target/target-script-min.js#hutber',
    dataType: "script",
    crossDomain: true,
    error: function(data){
        c(data.status);
    },
    success: function(data){
        c(data);
    }
});

现在,这是正在发送的内容:

 http://debug.build.phonegap.com/target/target-script-min.js?_=1381476442102

这意味着,为了调试,我必须使用随机生成的 ID。我也试过这个:url: 'http://debug.build.phonegap.com/target/target-script-min.js?_=hutber',只是在黑暗中拍摄。

那么,我是否认为#hutber没有与请求一起正确发送?

编辑

快速思考一下,使用 $.ajax 意味着我正在通过 http 请求动态加载脚本。正如昆汀所提到的,你不能通过#vars因为这些是客户端。但是,我突然想到,如果我将元素添加到正文中,就像它在页面加载时一样,我可以通过传递:

var s = document.createElement('script');
s.setAttribute("src","http://debug.build.phonegap.com/target/target-script-min.js#hutber");
document.getElementsByTagName('body')[0].appendChild(s);

现在,事情应该好一点,但是不能用手机测试这个理论。但手指交叉。

是和否。您认为#hutber没有随请求一起发送是正确的,但您认为这是不正确的,这是错误的。

URL 的片段标识符部分纯粹是客户端处理的,因此不应发送到服务器。

如果要将数据附加到 URL 以供服务器处理,请使用查询字符串(以?字符开头,而不是#字符(。如果同时具有查询字符串和片段标识符,则必须首先使用查询字符串。

如果将 data 属性包含在传递给 ajax 的对象中(如果您使用的是 GET,就像您在此处一样(,jQuery 将为您生成一个查询字符串。

data { "_": "hutber" }