[JQUERY] 파일에서 실행중인 응용 프로그램에 의해 만들어진 요청에 대한 오류 "원점 널 (null)는 액세스 제어 - 허용 - 원산지에 의해 허용되지 않습니다": // URL
JQUERY파일에서 실행중인 응용 프로그램에 의해 만들어진 요청에 대한 오류 "원점 널 (null)는 액세스 제어 - 허용 - 원산지에 의해 허용되지 않습니다": // URL
해결법
-
1.기록을 위해, 지금까지 내가 말할 수있는 두 가지 문제가 있었다 :
기록을 위해, 지금까지 내가 말할 수있는 두 가지 문제가 있었다 :
먼저 $ .getJSON을 사용하는 대린의 제안에 의해 로터리 방식으로 해결되었다. 이 문자열 콜백 =를 보는 경우는 약간의 마법 "JSONP"을 "JSON"의 기본에서 요청 유형을 변경할 수 있습니까? URL을한다.
// URL : 그것은 더 이상 CORS 파일에서 요청 수행을 시도하여 두 번째를 해결했다.
다른 사람들을 위해 명확히하기 위해, 여기에 간단한 문제 해결 지침은 다음과 같습니다 :
-
2.당신은 아마 당신의 호출 된 스크립트에 헤더를 추가해야합니다, 여기에 내가 PHP에서해야 할 일을했을 것입니다 :
당신은 아마 당신의 호출 된 스크립트에 헤더를 추가해야합니다, 여기에 내가 PHP에서해야 할 일을했을 것입니다 :
header('Access-Control-Allow-Origin: *');
크로스 도메인 AJAX의 자세한 내용은 (프랑스어) 서비스 WEB을 ou는.
-
3.간단한 HTML 프로젝트의 경우 :
간단한 HTML 프로젝트의 경우 :
cd project python -m SimpleHTTPServer 8000
그런 다음 파일을 찾습니다.
-
4.Google 크롬 v5.0.375.127 (내가 경고를 얻을)에 나를 위해 작품 :
Google 크롬 v5.0.375.127 (내가 경고를 얻을)에 나를 위해 작품 :
$.get('http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=?&minx=-30&miny=0&maxx=0&maxy=150', function(json) { alert(json.photos[1].photoUrl); });
또한 나는 이전이 (내 컴퓨터에 적어도) IE8에서 작업을하지 않는 대신으로 $ .getJSON () 메소드를 사용을 권장합니다 :
$.getJSON('http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=?&minx=-30&miny=0&maxx=0&maxy=150', function(json) { alert(json.photos[1].photoUrl); });
당신은 여기에서 온라인으로 시도 할 수 있습니다.
최신 정보:
이제 당신은 당신의 코드를 보여 것을 나는 그것으로 문제를 볼 수 있습니다. 당신은 익명 함수 및 인라인 기능이 있지만 모두 호출됩니다 processImages을 모두 가지고있다. 즉 어떻게 jQuery의 JSONP 지원 작품입니다. 내가 콜백 = 정의하고 어떻게주의 사항? 그래서 당신은 익명의 기능을 사용할 수 있습니다. 당신은 문서에 대한 자세한 내용을 읽을 수 있습니다.
또 다른 발언은 평가 호출하지 않아야한다는 것입니다. 익명 함수에 전달 된 매개 변수는 이미 jQuery를에 의해 JSON으로 해석됩니다.
-
5.한 요청 서버 JSON 데이터 포맷을 지원하는 경우 JSONP (JSON 패딩) 인터페이스를 사용한다. 그것은 당신이 프록시 서버 또는 공상 헤더 물건없이 외부 도메인 요청을 할 수 있습니다.
한 요청 서버 JSON 데이터 포맷을 지원하는 경우 JSONP (JSON 패딩) 인터페이스를 사용한다. 그것은 당신이 프록시 서버 또는 공상 헤더 물건없이 외부 도메인 요청을 할 수 있습니다.
-
6.그것은 동일한 원본 정책, 당신은 JSON-P 인터페이스 또는 동일한 호스트에서 실행중인 프록시를 사용합니다.
그것은 동일한 원본 정책, 당신은 JSON-P 인터페이스 또는 동일한 호스트에서 실행중인 프록시를 사용합니다.
-
7.우리는하여 http.conf 파일 (HTTP 서비스를 다시 시작 후 편집)를 통해 관리 :
우리는하여 http.conf 파일 (HTTP 서비스를 다시 시작 후 편집)를 통해 관리 :
<Directory "/home/the directory_where_your_serverside_pages_is"> Header set Access-Control-Allow-Origin "*" AllowOverride all Order allow,deny Allow from all </Directory>
헤더에 액세스 - 제어 - - 원산지 허용 "*"를, 당신이 정확한 URL을 넣을 수 있습니다 설정합니다.
-
8.로컬 테스트를하고 또는 파일 같은에서 파일을 호출하는 경우 : // 당신은 비활성화 브라우저 보안에 필요합니다.
로컬 테스트를하고 또는 파일 같은에서 파일을 호출하는 경우 : // 당신은 비활성화 브라우저 보안에 필요합니다.
MAC의 경우 : 열린 -a 구글 \ 크롬은 --disable-웹 보안을 --args
-
9.내 경우에는, 동일한 코드는 구글 크롬에없는 파이어 폭스에서 잘 근무하지만. 구글 크롬의 자바 스크립트 콘솔은 말했다 :
내 경우에는, 동일한 코드는 구글 크롬에없는 파이어 폭스에서 잘 근무하지만. 구글 크롬의 자바 스크립트 콘솔은 말했다 :
XMLHttpRequest cannot load http://www.xyz.com/getZipInfo.php?zip=11234. Origin http://xyz.com is not allowed by Access-Control-Allow-Origin. Refused to get unsafe header "X-JSON"
나는 원래 URL 제대로 일치하는 아약스 URL의 WWW 부분을 삭제했고, 그 다음 괜찮 았는데.
-
10.모든 서버가 JSONP 지원합니다. 그것은 그것의 결과에 콜백 함수를 설정하기 위해 서버가 필요합니다. 나는 순수한 JSON을 반환하지만, JSONP 지원하지 않는 사이트에서 JSON 응답을 얻기 위해 이것을 사용 :
모든 서버가 JSONP 지원합니다. 그것은 그것의 결과에 콜백 함수를 설정하기 위해 서버가 필요합니다. 나는 순수한 JSON을 반환하지만, JSONP 지원하지 않는 사이트에서 JSON 응답을 얻기 위해 이것을 사용 :
function AjaxFeed(){ return $.ajax({ url: 'http://somesite.com/somejsonfile.php', data: {something: true}, dataType: 'jsonp', /* Very important */ contentType: 'application/json', }); } function GetData() { AjaxFeed() /* Everything worked okay. Hooray */ .done(function(data){ return data; }) /* Okay jQuery is stupid manually fix things */ .fail(function(jqXHR) { /* Build HTML and update */ var data = jQuery.parseJSON(jqXHR.responseText); return data; }); }
-
11.내가 mod_proxy를 모듈을 사용했습니다, 그래서 나는 아파치 서버를 사용합니다. 모듈을 사용 :
내가 mod_proxy를 모듈을 사용했습니다, 그래서 나는 아파치 서버를 사용합니다. 모듈을 사용 :
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
그런 다음 추가 :
ProxyPass /your-proxy-url/ http://service-url:serviceport/
마지막으로, 스크립트로 프록시 URL을 전달합니다.
-
12.최종 참고로 모질라 문서는 명시 적으로 말한다
최종 참고로 모질라 문서는 명시 적으로 말한다
결과적으로 '*'사용에 단순히 나쁜 방법입니다. 간단하게 작동하지 않습니다 :)
-
13.크롬, 사파리와 파이어 폭스에서 나를 위해이 작품 - PHP의 경우
크롬, 사파리와 파이어 폭스에서 나를 위해이 작품 - PHP의 경우
https://w3c.github.io/webappsec-cors-for-developers/#avoid-returning-access-control-allow-origin-null
header('Access-Control-Allow-Origin: null');
파일 Axios의 호출 PHP는 라이브 서비스를 사용하여 : //
-
14.또한 (나는 다른 브라우저의 경우를 테스트하지 않았다) 크롬에서 같은 오류가 발생했습니다. 이 때문에 내가 www.domain.com 대신에 domain.com에 이동했다는 사실이었다. A는 이상한 비트,하지만 난의 .htaccess에 다음 라인을 추가하여 문제를 해결할 수 있습니다. 그것은 www.domain.com에 domain.com 리디렉션하고 문제가 해결되었다. 나는 거의 WWW을 입력 없지만 분명히 어떤 경우에는이 필요 결코 그래서 나는 게으른 웹 방문자입니다.
또한 (나는 다른 브라우저의 경우를 테스트하지 않았다) 크롬에서 같은 오류가 발생했습니다. 이 때문에 내가 www.domain.com 대신에 domain.com에 이동했다는 사실이었다. A는 이상한 비트,하지만 난의 .htaccess에 다음 라인을 추가하여 문제를 해결할 수 있습니다. 그것은 www.domain.com에 domain.com 리디렉션하고 문제가 해결되었다. 나는 거의 WWW을 입력 없지만 분명히 어떤 경우에는이 필요 결코 그래서 나는 게으른 웹 방문자입니다.
RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
-
15.당신이 JQuery와의 최신 버전을 사용하십시오. 우리는 JQuery와 1.10.2이 오류에 직면하고 오류가 JQuery와 1.11.1 사용 후 해결되었다
당신이 JQuery와의 최신 버전을 사용하십시오. 우리는 JQuery와 1.10.2이 오류에 직면하고 오류가 JQuery와 1.11.1 사용 후 해결되었다
-
16.여러분,
여러분,
나는 비슷한 문제로 달렸다. 그러나 피들러를 사용하여, 나는이 문제에 얻을 수있었습니다. 문제는 웹 API 측의 CORS 구현에 구성된 클라이언트 URL에 후행 슬래시가 없어야한다는 것입니다. 구글 크롬을 통해 요청을 제출하고 피들러의 헤더 섹션의 텍스트 뷰 탭을 검사 한 후 오류 메시지는 다음과 같이 말한다 :
* "지정된 정책 원산지 your_client_url : / '는 유효하지 않습니다 그것은 슬래시로 끝날 수 없습니다.."
그것은 인터넷 익스플로러에 문제없이 작동했지만 구글 크롬을 사용하여 테스트 할 때 나에게 두통을 준 때문 진짜 황당하다.
나는 CORS 코드에서 슬래시를 제거하고 웹 API를 다시 컴파일하고, 이제 API는 문제없이 크롬 및 Internet Explorer를 통해 액세스 할 수 있습니다. 이것을 샷을주십시오.
감사, 앤디
-
17.당신이 파일을 변경하는 경우, 당신은 실제로 (내 경우에는 적어도) 업데이트 된 파일을 사용하려면 서버를 다시 시작해야합니다 위에 CodeGroover에 의해 게시 된 솔루션, 작은 문제가 있습니다.
당신이 파일을 변경하는 경우, 당신은 실제로 (내 경우에는 적어도) 업데이트 된 파일을 사용하려면 서버를 다시 시작해야합니다 위에 CodeGroover에 의해 게시 된 솔루션, 작은 문제가 있습니다.
조금 검색 그래서, 내가 사용하려면이 하나를 발견 :
sudo npm -g install simple-http-server # to install nserver # to use
그리고 다음은 HTTP에 될 것입니다 : // localhost를 : 8000.
from https://stackoverflow.com/questions/3595515/origin-null-is-not-allowed-by-access-control-allow-origin-error-for-request-ma by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 모든 jQuery를 Ajax 요청이 완료 될 때까지 기다립니다? (0) | 2020.09.22 |
---|---|
[JQUERY] 이벤트 핸들러가 동적 콘텐츠에 작동하지 않습니다 [중복] (0) | 2020.09.22 |
[JQUERY] 어떻게 자바 스크립트, JQuery와 - 아약스를 사용하여 <입력 유형 = '파일'>의 변화에 선택한 파일의 전체 경로를 얻으려면? (0) | 2020.09.22 |
[JQUERY] jQuery를위한 기능이 "존재"인가? (0) | 2020.09.22 |
[JQUERY] 체크 박스가 jQuery를 체크 여부를 어떻게 확인합니까? (0) | 2020.09.21 |