Как реализовать функцию возврата из http запроса

У меня есть вызов AJAX, как следует

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

Вышеуказанный ajax-вызов возвращает policyFunction следующим образом:

    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 [];
}

Я хочу реализовать эту функцию в моем файле JavaScript. Как передача параметров этой функции. Так как я могу реализовать.

1 ответ

Решение

Вы можете вызвать его в браузере следующим образом:

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

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

Где fullObject - это весь объект, value - это значение конкретного свойства, params - это любые параметры, необходимые в функции проверки, а propertyName - это имя свойства.

Другие вопросы по тегам