没有& # 39;Access-Control-Allow-Origin& # 39;标头存在于请求的资源上.响应的HT

No 'Access-Control-Allow-Origin' header is present on the requested resource. The response had HTTP status code 405

本文关键字:资源 HT 请求 响应 于请求 Access-Control-Allow-Origin 存在 没有      更新时间:2023-09-26

我使用google recaptcha到laravel 5的默认内置登录,并且我正在从API捕获captcha的验证响应(例如success: true|false)。下面是我用来与google recaptcha API通信的脚本。

//trigger the login button
$("#loginbutton").click(function (e) {
                    /* Check if the captcha is complete */
                    var captchaResponse = $("#g-recaptcha-response").val();
                    if ($("#g-recaptcha-response").val()) {
                        $.post("https://www.google.com/recaptcha/api/siteverify?secret=MySecretKeyHere&response=" + captchaResponse, {/* no data */}, function(response){
                            if(response.success)
                            {
                                alert("asdasd");
                            }
                        }, 'json');
                    } else {
                        alert("Please fill the captcha!");
                    }

                    e.preventDefault();
                });

但遗憾的是没有工作,相反,我得到了这个错误(见下文)

recaptcha__file .js:163 XHR完成加载:POST "https://www.google.com/recaptcha/api2/reload?k=mySiteKey".xj.send @ recaptcha__file .js:163Uk @ recaptcha__file .js:211f。@ recaptcha_file .js:209f。@ recaptcha_file .js:207f。KB @ recaptcha_file .js:207f。发送@ recaptcha_file .js:208Wk。发送@ recaptcha__file .js:212L @ recaptcha__file .js: 33w。发送@ recaptcha__file .js:212(匿名函数)@ recaptcha__file .js:284(匿名函数)@ recaptcha__file .js:193z。@ VM12395:1(匿名函数)@ recaptcha__file .js:193e.Ob.e。wd @ recaptcha__file .js:36fd @ recaptcha__file .js:40bd @ recaptcha__file .js:40L。kj @ recaptcha__file .js:39Ic @ recaptcha__file .js:33@ recaptcha__file .js:163 XHR完成加载:POST "https://www.google.com/recaptcha/api2/userverify?k=mySiteKey".xj.send @ recaptcha__file .js:163Uk @ recaptcha__file .js:211f。@ recaptcha_file .js:209f。@ recaptcha_file .js:207f。KB @ recaptcha_file .js:207f。发送@ recaptcha_file .js:208Wk。发送@ recaptcha__file .js:212L @ recaptcha__file .js: 33w。发送@ recaptcha__file .js:212(匿名函数)@ recaptcha__file .js:286(匿名函数)@ recaptcha__file .js:193z。@ VM12474:1(匿名函数)@ recaptcha__file .js:193e.Ob.e。wd @ recaptcha__file .js:36fd @ recaptcha__file .js:40bd @ recaptcha__file .js:40L。kj @ recaptcha__file .js:39Ic @ recaptcha__file .js:33jQuery-2.1.3.min.js:4个选项https://www.google.com/recaptcha/api/siteverify?secret=MySecretKey . ajaxtransport .k.cors. a.crossdomain .send @ jQuery-2.1.3.min.js:4个选项。ajax @ jQuery-2.1.3.min.js;(匿名函数)@ jQuery-2.1.3.min.js:4(匿名函数)@ login:53n.event。@ jQuery-2.1.3.min.js:3 .event.add.r。handle @ jQuery-2.1.3.min.jslogin:1 XMLHttpRequest无法加载https://www.google.com/recaptcha/api/siteverify?secret=MySecretKey。请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://juliver.motgh.com'。响应的HTTP状态码为405。

任何想法?线索吗?帮助吗?建议吗?建议吗?

不能用你的私钥从客户端验证你的客户端答案。您必须仅从服务器端执行此操作。所以,请改变代码去你的服务器(WebAPI等),只是做POST到谷歌的URI从那里。这应该行得通。否则做这个检查是没有意义的——你正在分享你的秘密密钥…

请求的资源上没有'Access-Control-Allow-Origin'标头。

这意味着你试图使用的API不允许从http://juliver.motgh.com访问。

要理解为什么请求以这种方式失败,请了解HTTP访问控制(CORS)。

Bhavin Solanki的答案可能会帮助你真正解决问题,你的后端不会对你的请求进行访问控制。