繁体   English   中英

Angular $ http选项代替发布

[英]Angular $http options instead post

我向服务器api发出$http POST请求,但请求方法更改为OPTIONS 我用localhost完成所有操作。 所以我通过邮递员做了同样的请求,并且一切正常

服务:

function httpReg(userData) {
            console.log(userData)
            return $http({
                method: 'POST',
                url: CONFIG.APIHost + '/auth/signup',
                data: {
                    "username": userData.username,
                    "email":userData.email,
                    "password": userData.password
                },
                headers: {
                    'Content-Type': 'application/json; charset=utf-8'
                }
            });
        }

屏幕截图: 在此处输入图片说明
(来源: joxi.net

实际上,您的preflight要求已退回。

如果浏览器不信任您要访问的数据源,则浏览器将首先向该服务器发送preflight请求,如果返回200OK ,则浏览器将发送您的原始请求。

此项仅适用于浏览器,而其他工具(例如postman不会发送和预检请求,因此您的代码可能会起作用。

如何解决问题。

  • 将接受的选项GET, POST, OPTIONS, PUT标头添加到请求的资源。

是的,它看起来像是cors问题。

请尝试以下方法之一:

  1. 尝试在标题中设置引荐来源网址
  2. 尝试这个:

     app.config(['$httpProvider', function ($httpProvider) { //Reset headers to avoid OPTIONS request (aka preflight) $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; }]); 
  3. yeoman / gulp设置的_app.js文件中删除x-auth*设置。

参考: AngularJS对跨域资源执行OPTIONS HTTP请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM