javascript - Javascript XMLHttpRequest 对预检错误的响应
问题描述
我正在尝试使用纯 javascript 做一个简单的获取请求,我有一段时间没有这样做了。我必须通过基本身份验证才能获得此请求。它在邮递员中工作得很好,用户界面使只需输入用户通过就可以变得简单。我在给我这个“预检响应具有无效的 HTTP 状态”错误的代码中做了什么?我没有正确设置请求吗?我正在使用 chrome 跨域扩展并已打开。所以不要认为这是问题所在。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="data">
</div>
<button onclick="dashboard()">click me</button>
<script>
function dashboard() {
var request = makeHttpObject();
// var form_id = BO.getDataId();
// var app_id = app.getUID();
var user = "blah";
var password = "blue"
var app_id = "f4asdsd4sasdgrer5e78b-fcsdasssd77s-4ef4-8asefxzxcze207be8";
var link = `https://found.mainstream.org/authentixate-basic/secure/1/data/${app_id}/F_Form1`;
request.open("GET", link, true);
request.setRequestHeader("Authorization", "Basic " + btoa(user +":"+ password));
request.onreadystatechange = function () {
if (request.readyState == 4)
getAttachmentInfo(request.responseText);
};
request.send(null);
function makeHttpObject() {
try {
return new XMLHttpRequest();
} catch (error) { }
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (error) { }
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (error) { }
throw new Error("Could not create HTTP request object.");
}
function getAttachmentInfo(data) {
var parser, xmlDoc;
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(data, "text/xml");
} else {
// Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(data);
}
for (i = 0; i < xmlDoc.getElementsByTagName("F_Form1").length; i++) {
// var FilesObj = {
// "attachmentFileName": xmlDoc.getElementsByTagName("F_Attachment")[i].childNodes[1].firstChild.nodeValue,
// }
//console.log("data",xmlDoc.getElementsByTagName("F_Form1")[i].attributes)
console.log("data",xmlDoc.getElementsByTagName("F_Form1")[i].attributes[3])
}
}
}
</script>
</body>
</html>
解决方案
事实证明这是一个CORS问题。代码在生产环境中运行良好,但不在我的本地
推荐阅读
- c++ - 警告 C26812:枚举类型没有作用域。更喜欢枚举类而不是枚举
- python - Pytorch 几何:张量大小有问题
- html - 媒体查询的宽度有问题,这就是为什么它根本没有响应
- mysql - 使用 JOIN 和 COUNT 查找总计 SQL
- c++ - 显示字符串时出现问题。字符串字段显示为空
- java - 为什么我无法使用类名属性在 Flipkart 中定位元素?
- apache-spark-sql - 有什么方法可以提高火花写入性能?
- regex - 必需的正则表达式验证开始两个固定字符,然后在数字固定字符之后
- java - 更改添加的 jquery 类的位置
- .net-core-3.1 - 如何在 .net core 3.1 中使用配置管理器