javascript - 如何在 VueJS 上允许请求 header 字段 access-control-allow-origin

标签 javascript http vue.js axios vue-cli-3

我尝试使用原始 JSON 向 Slack API 发出 POST 请求,但不断收到以下错误

Access to XMLHttpRequest at 'https://hooks.slack.com/services/conuation/of/the/url' from origin 'http://localhost:8080' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.

下面是代码

const params =       {
                    "attachments":[
                      {
                        "fallback":"New Project Lead:<" + this.our_website + "|Click here to view>",
                        "pretext":"New Project Lead:<" + this.our_website + "|Click here to view>",
                        "color":"#D00000",
                        "fields":[
                          {
                            "title":"Company",
                            "value":this.user_company,
                            "short":false
                          },
                          {
                            "title":"Country",
                            "value":getName(this.user_country),
                            "short":false
                          }

                        ]
                      }
                    ]
                  };


                    this.axios.post('https://hooks.slack.com/services/continuation/of/url', params, {
                      headers: {
                        'content-type': 'application/json',
                        'Access-Control-Allow-Origin' : '*',
                      },
                    }).then((response)=>{
                        loader.hide();
                        let msg = "Sent Successfully";
                        this.displayAlert("Done", msg, "success");
                        setTimeout(() => {  // redirect to home after 2s
                            document.location = '/';
                        }, 2000);
                    }).catch((error) =>{
                        alert(error);
                    });
                }).catch((error) => {
                    loader.hide();
                    let msg = "Error : " + error;
                    this.displayAlert("Error", msg, "error");
                });

我正在使用 VueJS 和 Axios HTTP 库进行调用。每当我用 POSTMAN 测试时,它都工作正常。

最佳答案

您无法将此请求从前端发送到此服务。很多服务都会阻止它。

您可以创建后端子服务并向 slack api 发送请求。 因此,结果是您拥有自己的服务,网址为 mydomain.com/services/continuation/of/url,当您调用它时,您的服务将调用 https://hooks.slack.com/services/continuation/of/url并返回松弛响应

关于javascript - 如何在 VueJS 上允许请求 header 字段 access-control-allow-origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58960720/

相关文章:

vue.js - 如何绑定(bind)内联样式?

javascript - jQuery 动画延迟

javascript - 尝试在 JavaScript 中使用 time.js 和 for 循环仅输出数组中的最终值

php - 语言重定向的 HTTP 状态码

.htaccess - Ionic - XMLHttpRequest 无法加载

vue.js - 什么是 inheritAttrs : false and $attrs used for in Vue?

node.js - Nuxt js页面显示404未找到

javascript - 如何将这些简单的 javascript 行变成一个循环

javascript - 来自 DivPixelToLatLng 的 Google Maps API V3 不一致

java - HTTP 状态 403 - 未找到预期的 CSRF token