그누보드가입할떄 크롬웹브라우저에서 https 접속하면 kcaptcha가 안떠요

그누보드가입할떄 크롬웹브라우저에서 https 접속하면 kcaptcha가 안떠요

QA

그누보드가입할떄 크롬웹브라우저에서 https 접속하면 kcaptcha가 안떠요

답변 2

본문

크롬웹브라우저라도 http 로접속하면 정상적 kcaptcha 뜨고

그누보드 가입도 잘되는데

 

어떤유저 크롬에선

주소창에 http:// 로접속해도

강제적으로 https 로접속시키고

그누보드가입할떄 캡챠번호 떠야하는데 캡챠번호 안뜨고 공백이고

 

밑에처럼 메시지가 뜨면서 캡챠가 작동안합니다

 

이런경우 어떻게해야하나요?

 

메세지를보면 대충 이런메세지이고요

mixed content 어쩌고하면서

 

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

 

 

 

이 질문에 댓글 쓰기 :

답변 2

config.php 파일


define('G5_DOMAIN', 'https://' . $_SERVER['HTTP_HOST']);
define('G5_HTTPS_DOMAIN', 'https://' . $_SERVER['HTTP_HOST']);

https 에서 동작하도록 인증서를 설치하시면 됩니다.

https 프로토콜에서 문제가 된다는것 같은데
kcaptcha 를 가져다 사용하는 소스부분이 http:// 로 되어있는지 확인해보세요
접속한 사이트 주소는 https:// 인데
페이지 소스중 http:// 가 포함되어 있는 경우가 Mixed Content 입니다.

회원가입할떄 현재  http로는되고
  https 로는 캡챠가 안되는데

인증서쪽은 문제가없업보이고요 무료인증서도 유효기간 1년남았고요 
mixed content 문제가 이렇게 나오고있습니다


jquery-1.11.3.min.js:formatted:4153 Mixed Content: The page at 'https://test.com/bbs/register_form.php' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://test.com/plugin/kcaptcha/kcaptcha_session.php'. This request has been blocked; the content must be served over HTTPS.

네. 직전 댓은 인증서쪽을 이야기 한게 아니고 https, http 프로토콜의 혼용을 이야기 한것입니다.
https 로 캡챠가 왜 안되는지를 확인하셔야 할것 같습니다.

문제되는 페이지에서 소스보기 해보세요
어떤 부분은 https:// 어떤 부분은 http:// 라고 나온다면
그게 Mixed Content 라는 이야기 입니다.

베르만님 답변감사한데요
f12눌러서 보면
mixde content 문제라고는 나오지만 문제가 js를 지적하는데요

  f.send(a.hasContent && a.data || null),===========>여기가 문제라고하는데요



====js 소스부분===================

    if (!a.crossDomain || k.cors) {
            var b;
            return {
                send: function(c, d) {
                    var e, f = a.xhr(), g = ++Wb;
                    if (f.open(a.type, a.url, a.async, a.username, a.password),
                    a.xhrFields)
                        for (e in a.xhrFields)
                            f[e] = a.xhrFields[e];
                    a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType),
                    a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
                    for (e in c)
                        void 0 !== c[e] && f.setRequestHeader(e, c[e] + "");

                    f.send(a.hasContent && a.data || null),===========>여기가 문제라고하는데요

                    b = function(c, e) {
                        var h, i, j;
                        if (b && (e || 4 === f.readyState))
                            if (delete Xb[g],
                            b = void 0,
                            f.onreadystatechange = m.noop,
                            e)
                                4 !== f.readyState && f.abort();
                            else {
                                j = {},
                                h = f.status,
                                "string" == typeof f.responseText && (j.text = f.responseText);
                                try {
                                    i = f.statusText
                                } catch (k) {
                                    i = ""
                                }
                                h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404
                            }
                        j && d(h, i, j, f.getAllResponseHeaders())
                    }
                    ,
                    a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = Xb[g] = b : b()
                },
                abort: function() {
                    b && b(void 0, !0)
                }
            }
        }
    });
    function Zb() {
        try {
            return new a.XMLHttpRequest
        } catch (b) {}
    }
    function $b() {
        try {
            return new a.ActiveXObject("Microsoft.XMLHTTP")
        } catch (b) {}
    }
    m.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /(?:java|ecma)script/
        },
        converters: {
            "text script": function(a) {
                return m.globalEval(a),
                a
            }
        }
    }),

js 가 문제라면 https 접근했을때, http 접근했을때 모두 문제가 발생해야 맞을것 같은데
현재 그런 상황 같지는 않은게 http 접근시에는 정상동작 한다고 하신것 같습니다.
더군다나 검증되어 여러 곳에서 사용되는 라이브러리 jquery 라면 스크립트에 문제가 있을 확률은 더 낮습니다.

문제라는 부분을 보면 XMLHttpRequest. Ajax 호출로 send 하는 부분인데
아마도 예상엔 https 로 접속한 상태에서 http 주소를 Ajax 로 호출하면서 생기는 문제이지 않을까 싶구요,
라이브러리의 Ajax 기능은 그 틀을 제공하는 것이고
재료가 되는 호출할 주소는 사용하는 사용자가 만들어 전달합니다.

문제되는 페이지에서 소스보기 해보세요
어떤 부분은 https:// 어떤 부분은 http:// 라고 나온다면
그게 Mixed Content 라는 이야기 입니다.

베르만님 다시한번 답변감사한데요

현재 http로는 회원가입할떄 캡챠가 뜨는데
https로는 안뜨고

그떄 f12로 에러메세지는 밑에와같은데
왜그런지 이유를 모르겠네요 ㅜㅜ


jquery-1.11.3.min.js:formatted:4153 Mixed Content: The page at 'https://test.com/bbs/register_form.php' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://test.com/plugin/kcaptcha/kcaptcha_session.php'. This request has been blocked; the content must be served over HTTPS.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 23
© SIRSOFT
현재 페이지 제일 처음으로