에서 차단되는 크로스 오리진 요구
WordPress 사이트를 가지고 있는데, godaddy seal에서 오류가 발생하고 있습니다.사이트 바닥글 위젯 섹션에 검증 이미지용 html이 있습니다.
페이지를 새로고침하여 firebug를 체크하면 콘솔에 이 오류가 나타납니다.
차단된 발신지 간 요청:같은 오리진 정책에서는 https://seal.godaddy.com/setSealAttr?sealID=ID#의 리모트리소스를 읽을 수 없습니다.이 문제는 리소스를 동일한 도메인으로 이동하거나 CORS를 활성화하여 해결할 수 있습니다.
나는 이 문제에 대한 정보를 찾아보려고 노력했지만 그것은 내 능력 밖이다.이 오류의 원인 및 문제 해결 방법에 대해 설명해 주실 수 있습니까?저는 이 오류가 어떻게 발생하는지 이해하려고 합니다.어딘가에서 jquery와 충돌하는 문제입니까, 아니면 씰이 로드되는 방식입니까, 아니면 로드되는 시간입니까?
어떤 도움이라도 주시면 감사하겠습니다.
이 문제는 리소스를 동일한 도메인으로 이동하거나 CORS를 활성화하여 해결할 수 있습니다.
또한 WordPress를 사용하고 있는 경우 다음과 같이 매우 쉽게 프록시를 만들 수 있습니다.
proxy.proxy:
<?
header('Content-type: application/json');
$url=$_GET['url'];
$json=file_get_contents($url);
echo $json;
?>
그런 다음 AJAX와 마찬가지로 도메인 외부의 리소스를 호출하고 프록시를 사용합니다.php를 사용하여 동일한 도메인에서 리소스에 액세스하려는 것처럼 위장합니다.예를 들어 다음과 같습니다.
var url= "my-external-resource.com?param=value";
url = 'proxy.php?url='+url:
$.ajax({
url: url,
dataType: 'json',
success: function (data) {
...
}
});
여기서 결과는 JSON이 될 것으로 예상됩니다만, 필요에 따라서 헤더/데이터 타입을 HTML, XML 등으로 변경해 주세요.
업데이트 : @Jason은 보안에 대한 흥미로운 점을 제기합니다.나는 전적으로 동의한다.통상적인 상황에서는, 다음의 방법으로 파일에의 리모트 액세스를 막을 수 있습니다..htaccess및 a<Files>지시:
<Files proxy.php>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
</Files>
...하지만, 이것은 만족스럽지 않다. 왜냐하면 그것은 사용을 방해하기 때문이다.proxy.phpAJAX 콜에서도 마찬가지입니다.해결방법은 다음 중 하나를 체크하는 것입니다.proxy.php는 다른 스크립트에 의해 호출됩니다.
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
header('HTTP/1.0 403 Forbidden');
die('You are not allowed to access this file.');
}
이렇게 하면 프록시를 사용할 수 있습니다.javascript AJAX 호출에서 php를 사용할 수 있지만 원격(또는 로컬)에서 직접 액세스할 수 없습니다.자세한 내용은 다음 답변을 참조하십시오.$_SERVER['HTTP_X_REQUESTED_WITH']그리고.XMLHttpRequest.
$.ajax({
type: 'POST',
url: 'http://fscebook.comxa.com/index.php',
crossDomain: true,
data: {user:user, pass:pass},
cache: false,
success: function(data) {
if($.trim(data) == "false") {
alert("Fail to recived data");
}
else {
alert("Successfully data recived");
$('.results').html(data);
}
}
});
나는 글리피콘을 사용할 때도 비슷한 문제가 있었다.부트스트랩 ver3에 부속된 woff 글꼴.글꼴 패밀리 선언을 모든 태그 선언보다 먼저 배치하도록 css를 조정한 후 문제가 해결되었습니다.
도메인 간 오류 해결에 머리글 사용:
$.ajax({
type:'post',
url: 'your url',
headers: {
'api-key':'CSDP-001',
'accept':'application/json'
},
data: form_data,
success:function(data){
}
});
html에 기본 태그를 붙이면 문제를 해결할 수 있습니다.
<head>
<base href="http://www.otherdomain.com/xyz/">
</head>
언급URL : https://stackoverflow.com/questions/23607901/cross-origin-request-blocked-on
'source' 카테고리의 다른 글
| @types/*가 'dependencies' 또는 'devendencies' 중 어느 쪽으로 갈지 어떻게 판단합니까? (0) | 2023.03.27 |
|---|---|
| 구글 앵글JS 프레임워크 - 위험을 감수할 가치가 있습니까? (0) | 2023.03.27 |
| React Router V6 - 오류: useRoutes()는 컴포넌트의 컨텍스트에서만 사용할 수 있습니다. (0) | 2023.03.27 |
| 스프링 부트:내장된 Tomcat 서블릿 컨테이너를 시작할 수 없습니다. (0) | 2023.03.27 |
| 오류: PostCSS 플러그인 자동 리픽서에는 PostCSS 8이 필요합니다. PostCSS를 업데이트하거나 이 플러그인을 다운그레이드하십시오. (0) | 2023.02.14 |