2014-05-22 1 views
0

나는 몇 시간 동안이 기사를 읽었으며 아직 읽지 못했다. 여기 거래가 있습니다.아약스를 사용하여 PHP에서 자바 스크립트 개체를 반환하는 방법

Chrome 확장 프로그램을 사용하고 있으며 js 개체를 반환하는 서버를 호출하고 싶습니다. 이 페이지에 삽입하고 싶지 않지만 내 콘텐츠 스크립트 내에서 사용할 수 있기를 원합니다.

참고 : 나는 평가() (그래도 난 시도)를 사용할 수 없습니다 나는 내 헤더 여기에서 설정이 arent 있도록 프레임 워크를 사용하고

를 JSONP 사용할 수 있지만 응용 형 응용 프로그램/자바 스크립트를 반환하도록 설정 utf-8;

내 PHP는 측면은 다음과 같습니다

$refererObj = 'var refererObj = { 
     myFunc: function() { 
      console.log("hello"); 
     } 
    };'; 
echo $refererObj; 

내 JS가 첫 번째 CONSOLE.LOG은 두 번째는 "catch되지 않은 오류 ReferenceError를 제공 ["var refererObj = {↵ getProducts: function() {↵…(products);↵ console.log("hello");↵ }↵};"]

제공이

$.ajax({ 
      url: myUrl, 
      crossDomain: true, 
      data: postData, 
      dataType: "json", 
      type: "POST", 
      }).done(function(data){ 
       eval(data); 
       console.log(data); 
       console.log(refererObj); 
      }); 

과 같습니다 refererObj입니다 정의되지 않음 "

문자열을 자바 스크립트 객체와 함께 사용하면 실제로 문자열을 사용 가능한 코드로 "변환"하고 싶을 때까지 모든 것이 좋습니다.

도움이 될 것입니다.

감사

+0

JSON이 아니므로 JS 코드가 포함 된 문자열을 보내고 있습니다. – plalx

+1

[relax CSP] (https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval)를 사용하면 eval을 사용할 수 있습니다. 작은 망치를 사용해보십시오. – Xan

+0

@Xan,"content_security_policy": "script-src 'self' '안전하지 않은 평가'; object-src 'self'", 여전히 @eval과의 운행을 위해 내 매니페스트를 업데이트했습니다. 또한 작은 망치가 정말 좋을 것입니다.) – Beyerz

답변

1
  1. 당신은 실제로 unsafe-evaleval() 당신이 경우 relax the default Content Security Policy를 사용할 수 있습니다. 그러나 가장 피해야 할 큰 망치입니다.

  2. 콘텐츠 보안 정책의 https 서버 및 add it to script-src에서 서비스를 제공 할 수 있다면 JSONP를 다시 사용할 수 있습니다. 이것은 약간의 보안 위험이 있습니다.

내가 다른 어떤 솔루션이 의심 : 외부 서버를 오프로드 아무것도 오염 된 것으로 간주되어야하며, 당신이 그것을 실행하는 방법을 발견 한 경우 - 축하를, 당신은 크롬에서 CSP를 무시하고 주장 가야 당신의 버그 현상금.

단순히 JSON 데이터의 경우 모든 문제는 XHR 및 JSON.parse으로로드 할 수 있습니다. 그러나 당신의 예제는 코드를 포함하고 있습니다.

+0

불행히도 https는 현재 나를위한 옵션이 아닙니다. 나는 csp를 풀려고 노력했지만, 아직 평가는 나에게 여전히 도움이되지 못한다. 필자는 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게 필자에게이 필자의 필자에게 편지를 씁니다 Google에서 제공 한 구문 분석 및 구문 분석 ...하지만 여전히 성공하지 못했습니다. – Beyerz

+0

당신은 정말로 임의의 코드가 필요합니까? 확장 기능이 서버의 데이터를 기반으로 실행하는 일련의 명령을 가질 수 있습니다. HTTPS가 옵션이 아닌 경우 - 명령이 ** 안전 **인지 확인하십시오. – Xan

+0

이 예제는 임의적이지만 코드 자체는 크롬 확장 이상의 의미로 사용되므로 여러 장치의 함수를 사용하여 오브젝트를 가져올 수 있습니다. 그 이유는 크롬 전용 코드를 크롬에 연결하고 나머지는 내 서버에서 가져 오는 것입니다. – Beyerz

관련 문제