以角度向谷歌表单提交数据时出现CORS问题

Posted

技术标签:

【中文标题】以角度向谷歌表单提交数据时出现CORS问题【英文标题】:CORS issue while submitting data to google forms in angular 【发布时间】:2016-08-10 04:10:52 【问题描述】:

提交数据时: 错误信息:XMLHttpRequest 无法加载https://docs.google.com/forms/d/xxxxxxxxxxxxx/formResponse。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:8090' 不允许访问。响应的 HTTP 状态代码为 405。

    $scope.postDataToGoogle = function()
    $http(
        method: 'POST',
        crossDomain: true,
        url: 'https://docs.google.com/forms/d/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse',
        // dataType: "xml",
        data: tempData,
        ).success(function(data,status)
            //alert(data)
            console.log("Success");

        ).error(function(data,status) 
            console.log('Error:' + status);
        );

    

【问题讨论】:

您好,这个问题可能与this question有关。听起来谷歌文档不支持 CORS 请求,但 OP 发布了解决方法。 谷歌不支持。这个链接可能有用***.com/questions/18172801/… 【参考方案1】:

我确实尝试过使用 angular 仍然无法解决它,但使用 jQuery 它对我有用。

$.ajax(
            url: 'https://docs.google.com/forms/d/xxxxxxxxx',
            data: tempData,
            type: "POST",
            dataType: "xml",
            statusCode: 
                0: function () 
                    alert('error');

                ,
                200: function () 
                    alert('Thank you for your valuable feedback');

                
            
        )

【讨论】:

我可以将数据类型发送为 json insted of xml。【参考方案2】:

它与 jquery 或 Angular 无关,CORS 允许或禁止由后端服务器完成。 Google 可能不支持这个。(访问https://docs.google.com)

CORS(跨域资源共享)允许您更清晰地将前端与后端分开。

CORS 是一组从服务器发送的特殊响应头,告诉浏览器是否允许请求通过

访问控制允许来源:http://example.com。

Why does jQuery throw an error when I request external resources using an Appcache Manifest?

【讨论】:

以上是关于以角度向谷歌表单提交数据时出现CORS问题的主要内容,如果未能解决你的问题,请参考以下文章

使用laravel提交表单以处理时出现MethodNotAllowedHttpException?

提交表单时出现tinyMCE错误

在文章中提交 PHP 表单时出现 Joomla 2.5 404 错误

将 ajax 表单提交到 PHP 脚本时出现问题

将表单数据添加到后端时出现 CORS 问题

进行 axios.get 调用时出现 CORS 错误