【问题标题】:javascript ajax responesText compare not working in Chrome?javascript ajax响应文本比较在Chrome中不起作用?
【发布时间】:2012-05-11 09:54:56
【问题描述】:

我有一些返回简单字符串的 jquery ajax 调用。 返回字符串的解释在 Firefox 和 IE 中有效(class 设置为 ok),但在 Chrome 中无效(class 设置为错误)?

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");
  }
 }
}); 

【问题讨论】:

  • 为什么不避免依赖隐式转换而只使用if (result.responseText === "100")
  • 亚历山大是对的。应该这样做
  • 谢谢,这让我走上了正轨。似乎 myurl 返回了一个带有额外 BOM 的字符串(返回的是“100”,而不是“100”)。在没有 DOM 的 UTF 中设置文档编码修复了它。这有帮助:stackoverflow.com/questions/6538203/…

标签: php jquery ajax google-chrome response


【解决方案1】:

尝试条件为if (result.responseText== "100"){

【讨论】:

    【解决方案2】:
    complete : function (result) {
    

    当你使用 jQuery 时,result 已经是 responseText。如果您绝对想使用responseText 属性,可以使用以下内容:

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

    【讨论】:

      【解决方案3】:

      您是否尝试将响应与“100”进行比较?

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

      【讨论】:

        【解决方案4】:

        尝试像if (result.responseText== "100")这样的字符串比较

        或者将响应转换成整数,然后像这样比较

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

        如果您只发回一个号码。 :)

        【讨论】:

        • 100 == "100" => true | 100 === "100" => false
        • 是的,我已经尝试过了,但没有成功。实际上更糟:Firefox 也不适用于此语句
        【解决方案5】:

        myurl 似乎返回了一个带有额外 BOM 的字符串(返回的是“100”,而不是“100”)。在没有 DOM 的 UTF 中设置文档编码修复了它。这有帮助:How to avoid echoing character 65279 in php? (This question also relates to Javascript xmlhttp.responseText (ajax))

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-19
          • 1970-01-01
          • 1970-01-01
          • 2010-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多