Сбой вызова API xmlhttp / jquery через прокси с Apache - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть стек LAMP (Centos 7, Apache 2.6.4, php 7.2.3, mariadb)

Мое веб-приложение пытается выполнить вызов API, когда пользователь нажимает кнопку используя прокси, тестирование в почтальоне с моей локальной машины работает.

Я почти уверен, что это что-то связанное с CORS, сразу же отклонив мой вызов. Я получаю код состояния 0 из приведенного ниже предупреждения.

  if (xmlhttp.readyState == 4) {
            window.alert(xmlhttp.status);

Проверка в инструментах разработки деталей XHR не дает никаких дополнительных подсказок.

Я что-то пропустил в моей настройке?

Применимый прокси

 export https_proxy=proxy.site.com:8080
 export http_proxy=sysproxy.site.com:8080
  • эхо каждого показывает правильное значение

site.conf

<VirtualHost *:80>
    ServerName site
    ServerAlias site
    DocumentRoot /var/www/site/public_html
    ErrorLog /var/www/site/error.log
    CustomLog /var/www/site/requests.log combined
</VirtualHost>

httpd.conf дополнения

LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

IncludeOptional sites-enabled/*.conf

HTML Кнопка

<div class="form-group">
    <input type="button" id="bt_signup" class="btn btn-primary" value="Sign up" onclick="register()" /> 
</div>

Скрипт вызова API

<script>
function register() {
    alert("in register");
    var xmlhttp = new XMLHttpRequest();
    var firstname=document.getElementById("bt_firstname").value;
    var lastname=document.getElementById("bt_lastname").value;
    var emailid=document.getElementById("login-email").value;
    var pwd=document.getElementById("login-password").value;
    var url = "https://xxxxxxxxxxx/rest/api/1"
    alert("url is:  "+url);
    //var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST', url, true);
    xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    xmlhttp.setRequestHeader("Authorization", "Basic xxxxxxxxxxxxxxxxxxxxxx=");
    xmlhttp.send(JSON.stringify({"fields": { "priority": { "name": "P1" }, } }));
    window.alert("after req sent!");
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            window.alert(xmlhttp.status);
            if (xmlhttp.status == 200) {
                /* document.write("hello user"); */
                var res = eval("(" + xmlhttp.responseText + ")");
                alert("get after response");
                //window.alert("length:  " + response.Objects.length);
                window.alert("inside status 200");
                if (res.Msg=="success") {
                    window.alert(res);

                }
                else {
                    window.location='Register.html';
                }
            } else {
                window.alert("not 200");
            }
        } else {
            window.alert("not 4");
        }
    }
}
<script>
...