0

我有一些返回简单字符串的 jquery ajax 调用。返回字符串的解释在 Firefox 和 IE 中有效(类设置为 ok),但在 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");
  }
 }
}); 
4

5 回答 5

1

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

于 2012-05-11T09:57:04.713 回答
0
complete : function (result) {

resultresponseText当你使用 jQuery 时已经是。如果您绝对想使用该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

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

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

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

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

于 2012-05-11T09:59:20.857 回答
0

似乎 myurl 返回了一个带有额外 BOM 的字符串(返回的是“100”,而不是“100”)。在没有 DOM 的 UTF 中设置文档编码修复了它。这有助于:如何避免在 php 中回显字符 65279?(这个问题也与 Javascript xmlhttp.responseText (ajax) 有关)

于 2012-05-14T10:09:07.713 回答