0

Cross-Origin XMLHttpRequest에 대한 설명서는 올바른 사용 권한을 사용하는 한 https를 통해로드 된 페이지에서 http 리소스에 액세스 할 수 있어야합니다. 그러나 이것을 시도 할 때 다음 오류 메시지가 나타납니다.Chrome의 콘텐츠 스크립트에서 Cross-Origin XMLHttpRequest를 수행 할 수 있습니까?

content.js:1 Mixed Content: The page at 'https://www.example.com/' was loaded over HTTPS, but requested an insecure resource 'http://www.example.com/'. This request has been blocked; the content must be served over HTTPS. 

매니페스트 :

{ 
    "name": "Test Extension", 
    "version": "0.1", 
    "permissions": [ 
    "http://www.example.com/*", 
    "https://www.example.com/*", 
    ], 
    "content_scripts": [ 
    { 
     "matches": [ 
     "http://www.example.com/*", 
     "https://www.example.com/*" 
     ], 
     "js": ["content.js"], 
     "run_at": "document_start" 
    } 
    ], 
    "manifest_version": 2 
} 

content.js :

fetch('http://www.example.com/').then(response => { 
    console.log('Done!') 
}); 

답변

1

귀하의 문제가 CORS 없습니다. 혼합 된 콘텐츠이므로 확장시에도 해결 방법을 사용할 수 없습니다.

메시지 전달을 통해 요청을 뒤로 페이지로 이동할 수 있습니다.

+1

또는 'example.com'을 소유하고있는 경우 https에서 대신 엔드 포인트를 호스팅하는 것이 좋습니다. 소유하지 않으면 자신의 https 서버를 통해 프록시 할 수 있습니다. –