[JQUERY] 구글 API의에 jQuery를 포스트를 보내는 액세스 제어 - 허용 - 원산지 오류
JQUERY구글 API의에 jQuery를 포스트를 보내는 액세스 제어 - 허용 - 원산지 오류
해결법
-
1.'JSONP'를 추가, 도메인 간 : 나는 액세스 제어 - 허용 - 원산지 데이터 유형에 데이터 유형 매개 변수를 수정 오류를 해결 진실
'JSONP'를 추가, 도메인 간 : 나는 액세스 제어 - 허용 - 원산지 데이터 유형에 데이터 유형 매개 변수를 수정 오류를 해결 진실
$.ajax({ url: 'https://www.googleapis.com/moderator/v1/series?key='+key, data: myData, type: 'GET', crossDomain: true, dataType: 'jsonp', success: function() { alert("Success"); }, error: function() { alert('Failed!'); }, beforeSend: setHeader });
-
2.나는 정확히 같은 문제가 있었다 그것은 상호 도메인하지만 같은 도메인이 아니었다. 난 그냥 아약스 요청을 처리 한 PHP 파일에이 라인을 추가했습니다.
나는 정확히 같은 문제가 있었다 그것은 상호 도메인하지만 같은 도메인이 아니었다. 난 그냥 아약스 요청을 처리 한 PHP 파일에이 라인을 추가했습니다.
<?php header('Access-Control-Allow-Origin: *'); ?>
그것이 마치 마법처럼 일했다. 포스터 덕분에
-
3.이 오류는 해당 응용 프로그램에서 헤더 액세스 제어 - 허용 - 원산지 *를 추가 할 수있는 서비스를 사용하려고하지만, 서버 앞에 리버스 프록시를 넣을 수있는 경우, 오류가 헤딩으로 피할 수 고쳐 쓰기.
이 오류는 해당 응용 프로그램에서 헤더 액세스 제어 - 허용 - 원산지 *를 추가 할 수있는 서비스를 사용하려고하지만, 서버 앞에 리버스 프록시를 넣을 수있는 경우, 오류가 헤딩으로 피할 수 고쳐 쓰기.
(www.mydomain.com에서 공개) 포트에 8080을 실행하는 응용 프로그램입니다 가정, 당신은 포트 80에서 동일한 호스트에 역방향 프록시를 넣어,이 Nginx에 역방향 프록시의 구성은 다음과 같습니다
server { listen 80; server_name www.mydomain.com; access_log /var/log/nginx/www.mydomain.com.access.log; error_log /var/log/nginx/www.mydomain.com.error.log; location / { proxy_pass http://127.0.0.1:8080; add_header Access-Control-Allow-Origin *; } }
-
4.사실 여기에 필요하지 않습니다 : 예, jQuery를이 URL을 보는 순간 그것은 크로스 도메인 호출로 그 호출하여 교차 도메인을 가정, 다른 도메인에 속해 있습니다.
사실 여기에 필요하지 않습니다 : 예, jQuery를이 URL을 보는 순간 그것은 크로스 도메인 호출로 그 호출하여 교차 도메인을 가정, 다른 도메인에 속해 있습니다.
또한, 귀하의 URL이 다른 도메인 (크로스 도메인)에 속하는 또는 JSONP를 사용하는 경우는 $ 아약스와 동기 전화를 걸 수 없음을 유의해야합니다. 만 비동기 호출이 허용됩니다.
참고 : 귀하의 요청과 거짓 : 당신이 비동기를 지정하는 경우 동 기적으로 서비스를 호출 할 수 있습니다.
-
5.내 코드를 시도 에서 자바 스크립트
내 코드를 시도 에서 자바 스크립트
var settings = { "url": "https://myinboxhub.co.in/example", "method": "GET", "timeout": 0, "headers": {}, }; $.ajax(settings).done(function (response) { console.log(response); if (response.auth) { console.log('on success'); } }).fail(function (jqXHR, exception) { var msg = ''; if (jqXHR.status === '(failed)net::ERR_INTERNET_DISCONNECTED') { msg = 'Uncaught Error.\n' + jqXHR.responseText; } if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.'; } else if (jqXHR.status == 413) { msg = 'Image size is too large.'; } else if (jqXHR.status == 404) { msg = 'Requested page not found. [404]'; } else if (jqXHR.status == 405) { msg = 'Image size is too large.'; } else if (jqXHR.status == 500) { msg = 'Internal Server Error [500].'; } else if (exception === 'parsererror') { msg = 'Requested JSON parse failed.'; } else if (exception === 'timeout') { msg = 'Time out error.'; } else if (exception === 'abort') { msg = 'Ajax request aborted.'; } else { msg = 'Uncaught Error.\n' + jqXHR.responseText; } console.log(msg); });;
에서 PHP
header('Content-type: application/json'); header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET"); header("Access-Control-Allow-Methods: GET, OPTIONS"); header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding");
-
6.내 경우에는 하위 도메인 이름이 문제가 발생합니다. 여기에 세부 사항은
내 경우에는 하위 도메인 이름이 문제가 발생합니다. 여기에 세부 사항은
여기 밑줄 (_) 서브 도메인이 CORS 오류를 창조하고, app_development.something.com 사용. 앱 개발에 app_development을 변경 한 후 그것을 잘 작동합니다.
-
7.PHP로 약간의 해킹이있다. 그리고 그것은뿐만 아니라 구글과 작동하지만, 어떤 웹 사이트에 당신은 제어하지 않고 액세스 제어 - 허용 - 원산지를 추가 할 수 없습니다 *
PHP로 약간의 해킹이있다. 그리고 그것은뿐만 아니라 구글과 작동하지만, 어떤 웹 사이트에 당신은 제어하지 않고 액세스 제어 - 허용 - 원산지를 추가 할 수 없습니다 *
우리는 PHP 파일 우리의 웹 서버에 (예. getContentFromUrl.php)를 작성해야하고 약간의 트릭을합니다.
PHP
<?php $ext_url = $_POST['ext_url']; echo file_get_contents($ext_url); ?>
JS
$.ajax({ method: 'POST', url: 'getContentFromUrl.php', // link to your PHP file data: { // url where our server will send request which can't be done by AJAX 'ext_url': 'https://stackoverflow.com/questions/6114436/access-control-allow-origin-error-sending-a-jquery-post-to-google-apis' }, success: function(data) { // we can find any data on external url, cause we've got all page var $h1 = $(data).find('h1').html(); $('h1').val($h1); }, error:function() { console.log('Error'); } });
그것이 작동하는 방법 :
그리고 우리는 이벤트 onclick을 일부 버튼이 이벤트를 넣을 수 있습니다. 이 의지의 도움을 희망!
from https://stackoverflow.com/questions/6114436/access-control-allow-origin-error-sending-a-jquery-post-to-google-apis by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 자바 스크립트를 사용하여 Ctrl 키 + V, Ctrl + C를 감지? (0) | 2020.10.05 |
---|---|
[JQUERY] 페이지의 메타 태그를 변경하는 자바 스크립트를 사용하는 것이 가능? (0) | 2020.10.05 |
[JQUERY] jQuery를 가장 빠른 어린이 () 또는 발견 ()이란 무엇입니까? (0) | 2020.10.04 |
[JQUERY] $ 아약스 오류가 타임 아웃의 경우 결정 (0) | 2020.10.04 |
[JQUERY] jQuery를에 함수를 5 초마다 호출하는 가장 쉬운 방법은 무엇입니까? [복제] (0) | 2020.10.04 |