2012-05-11 10 views
0

単純な文字列を返すjquery ajax呼び出しがあります。 FirefoxとIE(クラスはokに設定されています)では戻り文字列の解釈が機能していますが、Chromeでは(クラスが間違って設定されていません)javascript ajax respondesTextはChromeで動作していませんか?

myurlのphpは数値の文字列を返します。 Chromeでは、アラート(result.responseTextのタイプ)。また私に文字列を与え、値が実際100であることをデバッグすることを提案します。しかし、何らかの理由でChromeがifステートメントに入ることはありません。

アイデア?

$.ajax({ 
    url : 'myurl', 
    data:{o:1}, 
    dataType:"text", 
    complete : function (result) { 
    if (result.responseText==100){ 
    $("#mydiv").addClass("ok"); 
    } 
    else { 
    $("#mydiv").addClass("wrong"); 
    } 
} 
}); 
+2

暗黙の変換に頼るのを避け、 'if(result.responseText ===" 100 ")'を使うのはなぜですか? –

+0

アレクサンダーが正しいです。これはすべきです –

+0

ありがとう、これは正しい軌道に乗せてくれます。 myurlはBOMを追加した文字列を返すように見えました( "100"は返され、 "100"は返されませんでした)。 UTFでドキュメンテーションのエンコーディングを設定すると、DOMを使わずにそれを修正しました。これは助けた:http://stackoverflow.com/questions/6538203/how-to-avoid-echoing-character-65279-in-php-this-question-also-relates-to-java – mmzc

答えて

1

あなたはjQueryのを使用する場合if (result.responseText== "100"){

0
complete : function (result) { 

resultなどの条件が既にresponseTextでみてください。あなたは絶対にresponseTextプロパティを使用する場合は、以下を使用することができます。

complete : function(result, statusText, xhrObject) { 
    // access xhrObject.responseText there 
} 
0

あなたは「100」との応答を比較してみますか?

if (result.responseText=="100"){ 
0

if (result.responseText== "100")

または整数に応答を変換するなどの試み列比較して、あなたが戻っのみ番号を送信している場合は、この

if (parseInt(result.responseText,10) == 100) 

のように比較します。 :)

+0

'100 ==" 100 " => true' | '100 ===" 100 "=> false' – paulslater19

+0

はい、すでに試しましたが、成功しませんでした。実際には悪い:Firefoxもこの声明ではうまくいかない – mmzc

関連する問題