我试图通过在dom上调用它来通过Ajax工作:
$.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);
现在,事情应该好一点,但不能用手机测试这个理论。但是手指交叉了。
答案 0 :(得分:7)
是和否。您认为#hutber
未与请求一起发送是正确的,但您认为这是错误的,这是错误的。
URL的片段标识符部分纯粹是客户端处理的,因此永远不应该发送到服务器。
如果要将数据附加到要处理的服务器的URL,请使用查询字符串(以?
字符开头,而不是#
字符。如果您同时拥有查询字符串和片段标识符,则查询字符串必须首先。
如果您向传递给data
的对象包含ajax
属性,jQuery将为您生成一个查询字符串(如果您使用GET,就像在这里一样)。
data { "_": "hutber" }