javascript - 使用 XMLHttpRequest 方法访问 api 时自动设置为“OPTIONS”,但我将方法初始化为“POST、PUT、GET 或 DELETE”
问题描述
这是我的 XMLHttpRequest 代码。我正在使用 XMLHttpRequest 访问 api。
如何解决跨浏览器来源问题?
var url = "http://192.168.1.10:8080/analytic/log/visit/create";
var json = JSON.stringify(data);
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');
// xhr.setRequestHeader('method', 'post');
xhr.onload = function() {
var users = JSON.parse(xhr.responseText);
if (xhr.readyState == 4 && xhr.status == "201") {
console.table(users);
} else {
console.error(users);
}
}
xhr.send(json);
解决方案
不是有效的修复,但您可以使用特定于浏览器的插件,例如,
- Allow-Control-Allow-Origin:*1.0.3(对于 chrome,一个扩展)
- CORS Everywhere(用于 Firefox,扩展)
这是一个快速修复但不是永久性的
推荐阅读
- python - 如何为通用协议定义可接受类型的对或元组
- javascript - Sequelize 无法创建表并出现错误“正在执行(默认):SELECT 1+1 AS 结果”
- javascript - 节点 js TCP.onStreamRead 问题
- angular - Angular,在 AppRoutingModule 加载之前加载 json 文件
- python - 有人可以分解这段代码并解释一下吗?
- angular - 使用 Web3 时浏览器中未捕获的 ReferenceError
- html - 阻止左滑动菜单使用 css 推送内容
- asp.net - Visual Studio:新安装后的智能感知问题
- html - 网格在 HTML CSS 中制作盒子?
- mongodb - MopngoDb 单节点副本集与 docker 容器