AngularJS - 如何禁用选项请求?

2024-01-06

我注意到我的 Angular 也在每个 POST 请求之前创建 OPTIONS 请求。

我正在使用自定义 API 服务来处理 HTTP 请求。

app.service('ApiService', function ($http) {

/**
 * Process remote POST request to give URL with given params
 * @param {String} url
 * @param {String} POST params
 * @return {JSON}  response from server
 */
this.doHttpRequest = function (type, url, params) {
    return $http({
        method: type,
        url: url,
        data: params,
        timeout: 5000,
        headers: {
            "Content-Type": "application/json",
        }
    });
}

}); 

问题是:

我如何禁用它(哪些配置值放在哪里)?

OPTIONS 有什么好处吗? 我认为这就像“两台服务器之间的握手”。

角度版本:1.2.15

感谢您的任何建议。


那不是角度。它是 XMLHttpRequest。

复杂的跨域HTTP请求需要飞行前 OPTIONS 请求 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests这样浏览器就可以知道其他服务器是否会授予 Ajax 请求的权限。

无法确保您发出的 Ajax 请求是simple https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests,没有办法阻止 OPTIONS 请求。

一个简单的请求:

  • 仅使用 GET、HEAD 或 POST。如果使用 POST 向服务器发送数据,则通过 HTTP POST 请求发送到服务器的数据的 Content-Type 是 application/x-www-form-urlencoded、multipart/form-data 或 text/plain 之一。
  • 不使用 HTTP 请求设置自定义标头(例如 X-Modified 等)

除非您希望放弃发送 JSON,否则您不能为此使用简单的请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS - 如何禁用选项请求? 的相关文章

随机推荐