2013-07-28 2 views
0

저는 처음으로 크롬 확장 코드를 작성하고 있습니다. 그들의 문서를 잘 읽으십시오, 특별히 허가 섹션.크롬 확장 권한 XMLHttpRequest

로컬 포트에서 JSON 응답을 특정 포트 ex로로드하려고합니다.

"permissions": [ 
    "http://localhost:3000/*" 
    ], 

그러나 점점 XMLHttpRequest cannot load http://localhost:3000/project/data.json Origin null is not allowed by Access-Control-Allow-Origin.

내가 뭔가를 놓친 것 같은데처럼 3000

나는 업데이트 내 mainfest.json 및 persssion 부분이다.

무엇이 누락 되었습니까?

+0

좋아 보인다. 권한을 추가 한 후 확장 프로그램을 다시로드 했습니까? 확장 프로그램의 프로세스 또는 콘텐츠 스크립트에서 AJAX 코드가 실행 중입니까? –

+0

예, 다시로드되었습니다. – arnold

답변

0

다음과 같은 솔루션 중 하나를 시도 할 수 :

  1. 이 매니페스트 파일의 끝에 다음 줄을 추가합니다

    "content_security_policy": "script-src 'self' http://localhost:3000; object-src 'self'" 
    
  2. 대신 localhost 대신 즉, 주소를 사용해보십시오 127.0.0.1

희망이 있습니다.

+0

도움 안 됨 – arnold

0

요청이 다른 포트와 동일한 호스트로 전송 된 경우 이는 이미 상호 도메인 요청입니다 (http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules 참조). 교차 도메인 아약 응답은 허용되지 않습니다. 두 가지 솔루션이 있습니다.

  1. JSONP 요청을 사용하려면.
  2. 응답 헤더에 옵션을 추가하려면 액세스 제어 허용 원점 : * 그러나 일부 브라우저는이 기능을 지원하지 않습니다.

참조하십시오

+1

이 정보는 일반적인 웹 페이지와 관련이 있지만 Chrome 확장 프로그램은 [동일한 출처 정책 완화] (https : // developers) 기능을 갖추고 있으므로 Chrome 확장 프로그램 개발과 관련이 없습니다. .chrome.com/extensions/xhr.html). 이 질문은 Chrome 확장 프로그램에서이 기능을 사용하려는 시도에 대해 묻습니다. – apsillers