2013-10-30 3 views
0

이 코드는 작동합니다얻기 JSONP 응답 : URL

(function() { 
     var scr = document.createElement('script'); 
     var head = document.getElementsByTagName('head')[0]; 
     window.insert = function(data) { 
       alert(data); 
     }; 
     scr.src = 'http://nocore.info/test.php?callback=insert'; 
     scr.type = 'text/javascript'; 
     head.appendChild(scr); 
})(); 

그것은 jsFiddle를 사용하여 테스트입니다. 그것이하는 일은 JSONp를 통해 문자열을 가져 와서 경고하는 것입니다.

그래서이 코드 수행합니다

(function(){var a=document.createElement("script"),b=document.getElementsByTagName("head")[0];window.insert=function(a){alert(a)};a.src="http://nocore.info/test.php?callback=insert";a.type="text/javascript";b.appendChild(a)})(); 

을하지만 자바 스크립트를 입력 할 때이 코드 다음에 URL 표시 줄에, 나는 아무 것도 얻을 수 없습니다. 왜 이것이 정확히 무엇입니까? 나는 그러한 행동을 전혀 알지 못한다. URL 바에서 window. * 변수를 설정할 수 있으며 DOM을 조작 할 수 있습니다.

그래서 여기에 무슨 문제가 있습니까?

감사합니다. 당신의 도움을 주셔서 감사합니다.

+0

[ 추천하지]. "This is a test"라고 쓰여지고 스크립트 태그가 '' – lastr2d2

답변

1

It just doesn't work when you're on Google. I've tried it on a different page and it works.

은 너무 구글에서 작동합니다. <head/><script> 태그가 있습니다. 그러나 경고창이 나타나지 않습니다. 귀하의 웹 사이트 페이지를 제공 HTTPS 경우이 페이지에 HTTP를 통해 전달되는 모든 활성 혼합 된 콘텐츠는 기본적으로 차단됩니다, 구글은 HTTPS를 사용

Can someone please explain why this is?

: 그 때문입니다. ChromeFirefox에서 사이트가 안전한 SSL에서 실행되는 경우, 찾아보기 외부 HTTP 소스에서 안전하지 않은 콘텐츠를 차단 의미

(다른 브라우저.을 테스트하지 않았습니다). 귀하의 경우는 http://nocore.info/test.php?callback=insert입니다. 당신이 패널 콘솔 열고이 같은 warnning/오류가 표시됩니다

[blocked] The page at https://www.google.com/ ran insecure content from http://nocore.info/test.php?callback=insert. 

해결 방법 :

  1. 보안 SSL을 지원하는 다른 호스트를 사용합니다. https://yournewhost/test.php?callback=insert가 작동합니다. 일반적인 자바 스크립트 라이브러리에 대해 이야기하고 있다면 https를 지원하는 Google, Microsoft와 같은 CDN을 사용하십시오.
  2. Chrome을 예로 들어 Chrome의 '-allow-running-insecure-content'명령 줄 매개 변수를 사용하여 안전하지 않은 콘텐츠 확인을 사용 중지합니다. 그것은 작동하고

About mixed content and how to view it - Knowledge Base

0

OK, 분명히 @Wayne이 옳습니다. Google에있을 때 작동하지 않습니다. 나는 다른 페이지에서 그것을 시도하고 작동합니다. 누군가 이유를 설명해 주시겠습니까? 자바 스크립트는 어떻게이 코드를 '해제'할 수 있습니까?

+1

이니 질문에 추가해야합니다. – lastr2d2