2011-10-04 23 views
5

Recibo un error extraño en mi código de JavaScript.El objeto no admite la propiedad o el método 'reemplazar'

Aquí está el ejemplo de código

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

}

Me da un error en la siguiente línea de código

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

objeto no soporta la propiedad o función 'reemplazar'. Pero reemplazar la función está trabajando con variables de cadena de lo contrario.

Mi ver jQuery 1.6.4 es

Por favor, ayuda.

Gracias Vivek

Respuesta

2

El tipo de respuesta claramente no es un objeto de la cadena tipo. Intente analizarlo como una cadena o ver qué hay dentro del objeto que se está devolviendo actualmente y usarlo de forma adecuada. En otras palabras ... vea cuál es su método que devuelve "GetComponentsValuesAgainstOilValue" al cliente. Eso es probablemente lo que está en su objeto de respuesta en este momento (en JSON).

5

response ya es un objeto. No necesita hacer ningún análisis JSON por su cuenta.

1

El parámetro de datos tomado por devolución de llamada exitosa se formatea de acuerdo con el parámetro de tipo de datos. En tu caso, "json", entonces tus datos son un objeto.

+0

@Baszz: La respuesta devuelta por mi función es una lista

0

Algunas versiones de JQuery no son compatibles con el método. Necesito obtener las siguientes versiones de 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> 
Cuestiones relacionadas