Я знаю, есть много вопросов по этой теме, и я пробовал все сообщения. Но я не смог решить эту ошибку. Вот почему я разместил этот вопрос.
Я создаю веб-сайт, где я использовал веб-сервис под названием holidaywebservice. Я использовал Jquery и Ajax для запроса и получения ответа от сервера. Когда я ввожу данные и нажимаю кнопку поиска, чтобы получить ответ, вкладка консоли браузера показывает мне эту ошибку -
Не удалось загрузить http://holidaywebservice.com/Holiday...ce2.asmx?WSDL : ответ на запрос предполетной проверки не прошел проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе , Происхождение ' http: // localhost ', следовательно, не допускается.
Как можно исправить эту ошибку без использования какого-либо расширения?
Вот код.
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
<form class="form-horizontal" method="POST" action="#" enctype="multipart/form-data" id="signupForm">
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Country : <input type="text" class="form-control" name="country" value="UnitedStates" id="country">
<br>
</div>
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Year : <input type="text" class="form-control" name="year" value="2018"
id="year"> <br>
</div>
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Month : <input type="text" class="form-control" name="month" value="04"
id="month"> <br>
</div>
<a href="#" id="ghsubmitbtn" class="btn btn-success">Search</a>
<p id="errorModal"></p> <br>
<div id="ghapidata" class="clearfix"></div>
</form>
</div> <!-- End Of The Col Class -->
<div class="col-md-12 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
<div class="table-responsive">
<table class="table table-striped table-bordered text-left" id="tblData">
<thead>
<tr class="info">
<td>Country</td>
<td>HolidayCode</td>
<td>Descriptor</td>
<td>BankHoliday</td>
<td>Date</td>
</tr>
<tbody id="tblBody"></tbody>
</thead>
</table>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#ghsubmitbtn').on('click', function (e) {
var country = $('#country').val();
var year = $('#year').val();
var month = $('#month').val();
//console.log(departureDate);
var str = '<?xml version = "1.0" encoding = "UTF-8"?>' +
'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.holidaywebservice.com/HolidayService_v2/">' +
'<SOAP-ENV:Body>' +
'<ns1:GetHolidaysForMonth>' +
'<ns1:countryCode>' + country + '</ns1:countryCode>' +
'<ns1:year>' + year + ' </ns1:year>' +
'<ns1:month>' + month + '</ns1:month>' +
'</ns1:GetHolidaysForMonth>' +
'</SOAP-ENV:Body>' +
'</SOAP-ENV:Envelope>';
//console.log(departureDate);
$.ajax({
url: 'http://holidaywebservice.com/HolidayService_v2/HolidayService2.asmx',
method: 'POST',
contentType: "text/xml; charset=utf-8",
data: str,
dataType: "text",
crossDomain: true,
//headers: {"Authorization": 'Bearer ' + bat},
success: function (data) {
console.log(data);
document.getElementById("demo1").innerHTML=data;
var xml = data,
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$CountryXML = $xml.find( "Country" )[0].childNodes[0].nodeValue;
$( "#Country" ).append( $CountryXML );
//document.getElementById("Country").innerHTML = $y.nodeValue;
//$HolidayCode = $xml.find( "HolidayCode" );
//$( "#HolidayCode" ).append( $HolidayCode.text() );
$HolidayCodeXML = $xml.find( "HolidayCode" )[0].childNodes[0].nodeValue;
$( "#HolidayCode" ).append( $HolidayCodeXML );
$DescriptorXML = $xml.find( "Descriptor" )[0].childNodes[0].nodeValue;
$( "#Descriptor" ).append( $DescriptorXML );
$BankHolidayXML = $xml.find( "BankHoliday" )[0].childNodes[0].nodeValue;
$( "#BankHoliday" ).append( $BankHolidayXML );
$DateXML = $xml.find( "Date" )[0].childNodes[0].nodeValue;
$( "#Date" ).append( $DateXML );
var BookBtn = '<input type="submit" value="Book" name="book" class="btn btn-primary">';
$('#tblData').empty();
for (var v = 0; v <= 999; v++) {
var row = $('<tr><td>' + $xml.find( "Country" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "HolidayCode" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "Descriptor" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "BankHoliday" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "Date" )[v].childNodes[0].nodeValue + '</td><td>'
+ BookBtn + '</td></tr>');
$('#tblData').append(row);
}
}
}); //Ajax
//Test function
//createTableAndContent(soap)
}); //Button
});
</body>
</html>
Я знаю, есть много вопросов по этой теме, и я пробовал все сообщения. Но я не смог решить эту ошибку. Вот почему я разместил этот вопрос.
Я создаю веб-сайт, где я использовал веб-сервис под названием holidaywebservice. Я использовал Jquery и Ajax для запроса и получения ответа от сервера. Когда я ввожу данные и нажимаю кнопку поиска, чтобы получить ответ, вкладка консоли браузера показывает мне эту ошибку -
Не удалось загрузить http://holidaywebservice.com/Holiday...ce2.asmx?WSDL : ответ на запрос предполетной проверки не прошел проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе , Происхождение ' http: // localhost ', следовательно, не допускается.
Как можно исправить эту ошибку без использования какого-либо расширения?
Вот код.
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
<form class="form-horizontal" method="POST" action="#" enctype="multipart/form-data" id="signupForm">
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Country : <input type="text" class="form-control" name="country" value="UnitedStates" id="country">
<br>
</div>
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Year : <input type="text" class="form-control" name="year" value="2018"
id="year"> <br>
</div>
<div class="col-md-4 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
Month : <input type="text" class="form-control" name="month" value="04"
id="month"> <br>
</div>
<a href="#" id="ghsubmitbtn" class="btn btn-success">Search</a>
<p id="errorModal"></p> <br>
<div id="ghapidata" class="clearfix"></div>
</form>
</div> <!-- End Of The Col Class -->
<div class="col-md-12 col-sm-12 hero-feature"> <!-- Start Of The Col Class -->
<div class="table-responsive">
<table class="table table-striped table-bordered text-left" id="tblData">
<thead>
<tr class="info">
<td>Country</td>
<td>HolidayCode</td>
<td>Descriptor</td>
<td>BankHoliday</td>
<td>Date</td>
</tr>
<tbody id="tblBody"></tbody>
</thead>
</table>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#ghsubmitbtn').on('click', function (e) {
var country = $('#country').val();
var year = $('#year').val();
var month = $('#month').val();
//console.log(departureDate);
var str = '<?xml version = "1.0" encoding = "UTF-8"?>' +
'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.holidaywebservice.com/HolidayService_v2/">' +
'<SOAP-ENV:Body>' +
'<ns1:GetHolidaysForMonth>' +
'<ns1:countryCode>' + country + '</ns1:countryCode>' +
'<ns1:year>' + year + ' </ns1:year>' +
'<ns1:month>' + month + '</ns1:month>' +
'</ns1:GetHolidaysForMonth>' +
'</SOAP-ENV:Body>' +
'</SOAP-ENV:Envelope>';
//console.log(departureDate);
$.ajax({
url: 'http://holidaywebservice.com/HolidayService_v2/HolidayService2.asmx',
method: 'POST',
contentType: "text/xml; charset=utf-8",
data: str,
dataType: "text",
crossDomain: true,
//headers: {"Authorization": 'Bearer ' + bat},
success: function (data) {
console.log(data);
document.getElementById("demo1").innerHTML=data;
var xml = data,
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$CountryXML = $xml.find( "Country" )[0].childNodes[0].nodeValue;
$( "#Country" ).append( $CountryXML );
//document.getElementById("Country").innerHTML = $y.nodeValue;
//$HolidayCode = $xml.find( "HolidayCode" );
//$( "#HolidayCode" ).append( $HolidayCode.text() );
$HolidayCodeXML = $xml.find( "HolidayCode" )[0].childNodes[0].nodeValue;
$( "#HolidayCode" ).append( $HolidayCodeXML );
$DescriptorXML = $xml.find( "Descriptor" )[0].childNodes[0].nodeValue;
$( "#Descriptor" ).append( $DescriptorXML );
$BankHolidayXML = $xml.find( "BankHoliday" )[0].childNodes[0].nodeValue;
$( "#BankHoliday" ).append( $BankHolidayXML );
$DateXML = $xml.find( "Date" )[0].childNodes[0].nodeValue;
$( "#Date" ).append( $DateXML );
var BookBtn = '<input type="submit" value="Book" name="book" class="btn btn-primary">';
$('#tblData').empty();
for (var v = 0; v <= 999; v++) {
var row = $('<tr><td>' + $xml.find( "Country" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "HolidayCode" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "Descriptor" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "BankHoliday" )[v].childNodes[0].nodeValue + '</td><td>'
+ $xml.find( "Date" )[v].childNodes[0].nodeValue + '</td><td>'
+ BookBtn + '</td></tr>');
$('#tblData').append(row);
}
}
}); //Ajax
//Test function
//createTableAndContent(soap)
}); //Button
});
</body>
</html>
00JQuery, AJAX, веб-сервисы,