2017-06-29 3 views
1

J'ai un appel ajax comme suivreComment mettre en œuvre le retour de la fonction de requête http

$.ajax({ 
    datatype:'json', 
    url: 'http://localhost:9090/openidm/policy/managed/user/'+storeUserId, 
    type:'get', 
    xhrFields: { 
     withCredentials: true 
    } , 
    corssDomain:true, 
    headers: { 
     "X-Requested-With":"XMLHttpRequest" 
    }, 
    success: function (result){ 
     var validations = result.properties[1].policies[1]; 
     console.log(validations.policyFunction); 
    }, 
    error:function (error){ 
     console.log (error); 
    } 
    }); 
}); 

ci-dessus appel ajax retourner le policyFunction comme suit:

function (fullObject, value, params, property) { 
    var isRequired = _.find(this.failedPolicyRequirements, function (fpr) { 
     return fpr.policyRequirement === "REQUIRED"; 
    }), isNonEmptyString = (typeof (value) === "string" && value.length), hasMinLength = isNonEmptyString ? (value.length >= params.minLength) : false; 
    if ((isRequired || isNonEmptyString) && !hasMinLength) { 
     return [{"policyRequirement":"MIN_LENGTH", "params":{"minLength":params.minLength}}]; 
    } 
    return []; 
} 

je veux mettre en œuvre cette fonction dans mon fichier javascript. Comme passer des paramètres à cette fonction. Alors, comment puis-je mettre en œuvre.

+0

est typeof validations.policyFunction == 'fonction'? – karthick

+0

Voulez-vous dire ce code de code? var validations = result.properties [1] .policies [1]; – Achilles

+0

C'est un texte si je ne me trompe pas – Achilles

Répondre

1

Vous pouvez appeler dans le navigateur comme ceci:

policyFunction = eval("(" + validations.policyFunction + ")"); 

failures = policyFunction.call({ failedPolicyRequirements: [] }, 
    fullObject, 
    value, 
    params, 
    propertyName); 

Où fullObject est l'objet entier, la valeur est la valeur de la propriété particulière, params sont les paramètres nécessaires dans la fonction de validation et propertyName est Le nom de la propriété.