0

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

myurl の php は、単純に数値を含む文字列を返します。Chrome では、アラート (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");
  }
 }
}); 
4

5 に答える 5

1

として条件を試してくださいif (result.responseText== "100"){

于 2012-05-11T09:57:04.713 に答える
0

次のような文字列比較を試してくださいif (result.responseText== "100")

または、応答を整数に変換してから、次のように比較します

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

番号のみを返送する場合。:)

于 2012-05-11T09:59:20.857 に答える
0
complete : function (result) {

resultresponseTextjQueryを使用するときはすでにです。プロパティを絶対に使用したい場合はresponseText、次を使用できます。

complete : function(result, statusText, xhrObject) {
    // access xhrObject.responseText there
}
于 2012-05-11T09:58:53.340 に答える
0

応答を「100」と比較しようとしていますか?

if (result.responseText=="100"){
于 2012-05-11T09:58:59.890 に答える
0

myurl が追加の BOM を含む文字列を返したようです (「100」ではなく「100」が返されました)。ドキュメントのエンコーディングをDOMなしのUTFで設定すると修正されました。これは役に立ちました: PHP で文字 65279 をエコーし​​ないようにするには? (この質問は Javascript xmlhttp.responseText (ajax) にも関連しています)

于 2012-05-14T10:09:07.713 に答える