2011-08-10 45 views
0

我有一个AJAX调用JsonAction错误:对象不支持属性或方法“的indexOf”

   $.ajax({ 
       url: "/Cancel/", 
       context: document.body, 
       success: function (result) { 
        if (result.indexOf("Authorize") != -1) //indexOf not supported? 
           window.location.replace("/Account/LogOn"); 
         //... 
       }; 

这是为什么发生?

还有,我也试图去这样的:

var responce = result; 
if (responce.indexOf("Authorize") != -1) 

var responce = $(result); 
if (responce.text().indexOf("Authorize") != -1) 

但都是一样的。 Ned帮助如何使.index工作。

+0

致电退货?将alert(result)'作为成功处理程序的第一行,并查看实际结果。 – jfriend00

回答

2

服务器响应可能被解释为JSON,并被jQuery自动转换为数据对象。在这种情况下,它可能不会有indexOf成员,并且它肯定不会是一个函数。

尝试强制的jQuery通过设置您的设置的dataType属性离开响应,文本对象“文本”:

$.ajax({ 
    url: "/Cancel/", 
    dataType: "text", 
    ... 
+0

+1有很好的解释 – Joper

0

嗨尝试使用什么是您的AJAX这样

$.ajax({ 
      url: "/Cancel/", 
      context: document.body, 
      success: function (result) { 
       var str=String(result); 
       if (str.indexOf("Authorize") != -1) //indexOf not supported? 
          window.location.replace("/Account/LogOn"); 
        //... 
        //... 
      }; 
相关问题