我正在尝试使用XMLHttpRequest从外部网站/提供商使用AJAX将XML数据打印到网页中。不幸的是他们没有启用CORS。浏览器检查器控制台因此声明:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点'null'访问。
我曾尝试恳求其他开发人员启用CORS,但他们没有这样做。使用JSONP不起作用,因为他们坚持认为他们的数据是XML。
他们的开发人员现在告诉我,这需要在服务器端而不是客户端完成。这似乎是我作为前端开发人员的头脑。我甚至不知道从哪里开始。
我已经完成了Google搜索,但我没有运气。我知道我的服务器环境是我认为的Windows服务器。它是一个政府教育服务器,因此很难找到更多有关它的信息。
无论如何,这是我的JS页面代码:
<script type="application/javascript">
var Connect = null; // cor stands for Cross-Origin request
if (window.XMLHttpRequest) {
Connect = new XMLHttpRequest();
alert("CORS supported")
}
//else if (window.XDomainRequest) {
//cor = new XDomainRequest();
//}
else {
alert("Your browser does not support Cross-Origin request!");
// return;
}
//define which file to open and send the request
Connect.open("GET", "https://lrm.wisenet.co/pub/online-enrolment-links.ashx?key=q5DbpLXB9cZps1Hu8r6Z7Q%3d%3d", true);
Connect.setRequestHeader("Content-Type", "text/xml");
Connect.send(null);
//1 Name
//2 Description
//3 Location
//4 Fees
//5 Concessions
//6 Start Date
//7 End Date
//8 Detail URL
//9 Enrol URL
//Place response in an XML document
var TheDocument = Connect.responseXML;
//Place the root node in an element
// var Courses = TheDocument.childNodes[0];
// console.log(Courses);
//
// //Retrive each course in turn.
// for (var i=0; i < Courses.children.length; i++){
// var Course = Courses.children[i];
//
// //Access each of the data values
// var name = Course.getElementsByTagName("Name");
// var description = Course.getElementsByTagName("Description");
// var location = Course.getElementsByTagName("Location");
// var fees = Course.getElementsByTagName("Fees");
// var concessions = Course.getElementsByTagName("Concessions");
// var startDate = Course.getElementsByTagName("StartDate");
// var endDate = Course.getElementsByTagName("EndDate");
// var detailUrl = Course.getElementsByTagName("DetailURL");
// var enrolUrl = Course.getElementsByTagName("EnrolURL");
//
// //Write the data to the page in a table
// document.write("<tr><td>");
// document.write(name[0].textContent.toString());
// document.write("</td><td>");
// document.write(description[0].textContent.toString());
// document.write("</td><td>");
// document.write(location[0].textContent.toString());
// document.write("</td><td>");
// }
</script>
是否有可能获得这个工作服务器端?我应该采取什么方法?我只是觉得我不能解决这个CORS问题。