加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何跳过AngularJS中的OPTIONS预检请求

发布时间:2020-12-17 09:06:25 所属栏目:安全 来源:网络整理
导读:我开发了一个PhoneGap应用程序,现在正在转换为移动网站。除了一个小故障,一切工程顺利。我通过POST请求使用某个第三方API,它在应用程序中正常工作,但在移动网站版本中失败。 仔细看看,似乎AngularJS(我猜实际上是浏览器)是首先发送一个OPTIONS请求。我
我开发了一个PhoneGap应用程序,现在正在转换为移动网站。除了一个小故障,一切工程顺利。我通过POST请求使用某个第三方API,它在应用程序中正常工作,但在移动网站版本中失败。

仔细看看,似乎AngularJS(我猜实际上是浏览器)是首先发送一个OPTIONS请求。我今天学到了很多关于CORS的,但我似乎不知道如何禁用它。我没有访问该API(所以在那一侧的更改是不可能的),但他们已经添加了我正在工作的域到他们的Access-Control-Allow-Origin头。

这是我说的代码:

var request = {
                language: 'fr',barcodes: [
                    {
                        barcode: 'somebarcode',description: 'Description goes here'
                    }
                ]
            };
        }
        var config = {
            headers: { 
                'Cache-Control': 'no-cache','Content-Type': 'application/json'
            }
        };
        $http.post('http://somedomain.be/trackinginfo',request,config).success(function(data,status) {
            callback(undefined,data);
        }).error(function(data,status) {
            var err = new Error('Error message');
            err.status = status;
            callback(err);
        });

如何防止浏览器(或AngularJS)发送该OPTIONS请求,只是跳到实际的POST请求?我使用AngularJS 1.2.0。

提前致谢。

预检是由您的Content-Type of“application / json”触发的。防止这种情况的最简单的方法是将Content-Type设置为“text / plain”。 application / x-www-form-urlencoded& multipart / form-data内容类型也是可以接受的,但你当然需要格式化你的请求有效负载。

如果在进行此更改后仍然看到预检,则Angular可能还会向请求中添加X标头。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读