在将CTF记分板从旧版本的jQuery迁移到版本2.0.2时,我注意到jQuery post函数似乎无法检索xml数据。代码在1.8.3中工作正常,但在1.9.1中无法运行。无论如何不使用jQuery migrate来解决这个问题吗?
form.submit
(
function()
{
$.post
(
'ajax.php?m=login',
{
'username': $( '#username' ).attr( 'value' ),
'password': $( '#password' ).attr( 'value' ),
'token': token
},
function( xml )
{
switch( $( xml ).find( 'code' ).text() )
{
case '1':
login();
clear_mainframe( false );
break;
case '2':
toggle_color( $( '#header' ), 'orange' );
break;
case '3':
toggle_color( $( '#header' ), 'red' );
break;
}
}
);
return false;
}
);
答案 0 :(得分:0)
您可以通过第4个参数$.post
(https://api.jquery.com/jQuery.post/)告诉jQuery返回什么类型的数据。 jQuery使用的启发式方法可能会发生变化。
您还应该在浏览器(开发人员工具栏)中检查从服务器返回的原始响应。这将分解差异是否是jQuery的问题以及它如何解析响应,或者您的服务器是否甚至没有返回XML开始。
答案 1 :(得分:0)
我终于发现是弄乱了剧本。较新版本中的.attr()仅检索属性。我将它们改为.prop()而且工作正常。