У меня есть стек 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>