首页 > 解决方案 > 使用 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);

标签: javascript

解决方案


不是有效的修复,但您可以使用特定于浏览器的插件,例如,

  • Allow-Control-Allow-Origin:*1.0.3(对于 chrome,一个扩展)
  • CORS Everywhere(用于 Firefox,扩展)

这是一个快速修复但不是永久性的


推荐阅读