Consumin OData от Nav2015 через Javascript - аутентификация не проходит - PullRequest
0 голосов
/ 10 марта 2020

мы пытаемся подключиться к нашим OData из NAV2015. Ссылка, имя пользователя и пароль пользователя работают нормально, если мы просто скопируем, вставим URL в ou rbrwser и вручную добавим пароль и имя пользователя.

Мы абсолютно новички в javascript. Посмотрите код, который мы нашли в inte rnet ниже:
(Мы пока не меняем функции, так как нам даже не удается аутентифицировать) Мы будем рады любой помощи. Мы используем пароль, а не ключ веб-сервиса

<head> 
    <title></title> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript"> 
        var baseURL = 'OurURL'; 

        // Function to Invoke a NAV WebService 
        function InvokeNavWS(method, parameters, successFunc) { 
            $.ajax({
                type: "GET",
                contentType: 'application/json; charset=utf-8',
                username: 'name',
                password: 'pw',
                url: baseURL + '?$format=json' + parameters,
                xhrFields: {
                    withCredentials: true
                },
                success: successFunc,
                error: HandleError
            }); 
        } 
        // Get the Company list 
        function SystemService_Companies() { 
            InvokeNavWS('Company', '', HandleResult_Companies); 
        } 

        // Handle the results from the Company list
        function HandleResult_Companies(result) {
            var companies = result.value;
            var companyText = "";
            for (var i = 0; i < companies.length; i++) { 
                companyText += companies[i].Name + '<br>'; 
            } 
            $('#companies').html(companyText);
        }

        // Get details for a specific Customer
        function CustomerPage_Read(no) { 
            InvokeNavWS('CustomerList', '&$filter=No eq \'' + no + '\'', HandleResult_Customer); 
        } 

        // Handle the results from the Customer call
        function HandleResult_Customer(result) {
            $('#cust10000').html('Name of Customer 10000: ' + 
                    result.value[0].Name + '<br>'); 
        }

        // Get details for multiple Customer
        function CustomerPage_ReadMultiple(filters) { 
            InvokeNavWS('CustomerList', filters, HandleResult_MultipleCustomer); 
        } 

        // Handle the results from the Customer call
        function HandleResult_MultipleCustomer(result) {
            var Customers = result.value;
            var customersText = "Customers in ES served by ROT or BLAU warehouse:<br>";
            for (i = 0; i < Customers.length; i++) {
                customersText += Customers[i].Name + ', Contact ' + Customers[i].Contact + '<br>';
            }
            $('#custList').html(customersText);
        }

        function HandleError(err) {
            console.log(err);
        }

    </script> 
</head>  
<body> 
    <div id="companies">
        <a href="#">get Companies</a>
    </div>
    <br>
    <div id="cust10000">
        <a href="#">get Customer 10000</a>
    </div>
    <br>
    <div id="custList">
        <a href="#">get Customers in ES served by ROT or BLAU warehouse</a>
    </div>

    <script type="text/javascript"> 
        $("#companies a").click(function () { SystemService_Companies(); }); 
        $("#cust10000 a").click(function () { CustomerPage_Read(10000); });
        $("#custList a").click(function () { CustomerPage_ReadMultiple("&$filter=Country_Region_Code eq 'ES' and (Location_Code eq 'ROT' or Location_Code eq 'BLAU')"); });
    </script> 
</body> 

...