2011-10-04 35 views
5

我在我的JavaScript代码中遇到了一个奇怪的错误。对象不支持属性或方法'替换'

下面是代码样品

function FetchData() 
{ 
var selValue=$("select[id$=ddlComponents]").val() 
    var param=$.param({ID:selValue}); 

    var method="proxy.aspx/GetComponentsValuesAgainstOilValue"; 

$.ajax({ 
    type: "POST", 
    url: method, 
    data: param, 
    contentType: "application/json", 
    dataType: "json", 
    success: function(response) { 

    if (response.replace(/"/g, '') == '{d:[]}') 
    { 
     response = eval('(' + response + ')').d; 
    } 

    }, 
    error: function(xhr,error,status) 
    { 
     alert(error); 
    } 
    }); 

}

它给我一个错误在下面的代码行

if (response.replace(/"/g, '') == '{d:[]}') 
    { 
     response = eval('(' + response + ')').d; 
    } 

对象不支持性质或功能 '替换'。但是替换函数在其他情况下使用字符串变量。

我的JQuery版本是1.6.4

请帮忙。

由于 的Vivek

回答

2

响应的类型显然不是字符串类型的一个对象。尝试将其解析为字符串或查看当前正在返回的对象内部,并以适当的方式使用它。换句话说......看看你的方法“GetComponentsValuesAgainstOilValue”正在返回给客户端。这可能是你目前的响应对象(以JSON)。

5

response已经是一个对象。你不需要自己做任何JSON解析。

1

成功回调所采用的数据参数根据dataType参数进行格式化。在你的情况 - “json”,所以你的数据是一个对象。

+0

@Baszz:我的函数返回的响应是一个List

0

某些版本的JQuery不支持该方法。你需要得到以下版本的JQuery

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> 
相关问题