从源对XMLHttpRequest的访问已被阻止(CORS错误)

时间:2019-05-14 08:38:20

标签: javascript google-chrome amazon-s3 lambda cors

我正在创建一个表单,用户应填写并提交。提交后,数据会到达电子邮件。

在S3上完成表单的部署。提交后,请求转到lambda中的函数。使用API​​网关将Lambda函数作为其他端点公开。

用邮递员命中可以成功,但是当我用chrome浏览器击中它时,却给了我一个错误。

  

在'端点Url上访问XMLHttpRequest,而在   从来源“ 提交的网站网址”提交(由lambda提供)”   点击”已被CORS政策阻止:“请求标头”字段   不允许访问控制允许起源   飞行前响应中的Access-Control-Allow-Header。

我在网上搜索,并且在Access-Control-Allow标头中添加Access-Control-Allow-Origin可以解决错误。这是在lambda中

"headers": { 
                'Content-Type': 'application/json', 
                'Access-Control-Allow-Origin': 'https://www.websiteDummy.com',
                'Access-Control-Allow-Methods':'GET,HEAD,OPTIONS,POST', 
                'Access-Control-Allow-Headers':'Access-Control-Allow-Origin, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers',
                "Access-Control-Allow-Credentials" : true
            },

从发端,我的ajax请求

$.ajax({
            type: "POST",
            crossDomain: true,
            headers: { 'Access-Control-Allow-Origin': '*' },
            url: "deployed URL given by lambda/beta",
            data: JSON.stringify(requestJson),
            dataType: "json",
            contentType :"application/json",
            success: function(msg){

                alert("Your query is registered with us");
                document.getElementById("name").value="";
                document.getElementById("email").value="";
                document.getElementById("remarks").value="";
            }

            });

在chrome中添加“网络”标签的屏幕截图: Network request response for CORS

我不明白问题出在哪里。如果有人甚至可以指出原因可能会有所帮助

0 个答案:

没有答案