2016-10-24 2 views
1

지난 며칠 동안 https 페이지에 버튼을 삽입하는 Chrome 확장 프로그램을 만들려고합니다 (완료 :) :). 일단 버튼이 눌려지면, 나는 DOM에서 값을 읽을 것이다. (done :) :) test.php 파일에 푸시한다. (그게 문제 다.) 이메일을 통해 그 var를 보낼 것이다.Chrome 확장 프로그램을 사용하여 PHP 파일을 실행합니다

지금까지 나는이 만든 :

manifest.json을

{ 
"name" : "test", 
"version": "1.0.1", 
"manifest_version": 2, 
"permissions": [ 
        "tabs", "activeTab", "https://www.googleapis.com/*" 
       ], 
"browser_action": { 
         "default_icon": "icon128.png" 
        }, 
"content_scripts": [ 
         { 
         "js": ["jquery-3.1.1.min.js", "content.js"] 
         } 
        ], 
    "background": { 
         "scripts": [ "jquery-3.1.1.min.js", "background.js" ] 
        }} 

content.js

(function(window, $, undefined){ 


$('#sendbutton').on('click', function(event) { 


    var campaignInfo = { 
     'name' : 'test_name', 
     'surname' : 'test_surname' 

    }; 
    var datastring = JSON.stringify(campaignInfo); 

    chrome.runtime.sendMessage({ 
    method: 'POST', 
    action: 'xhttp', 
    url: 'http://localhost:8080/test/test.php', 

    data: datastring 
}); 

    console.log(campaignInfo); 


    }); })(window, jQuery); 

background.js

chrome.runtime.onMessage.addListener(function(request, sender, callback) {if (request.action == "xhttp") { $.ajax({ 
    type: request.method, 
    url: request.url, 
    data: request.data, 
    success: function(responseText){ 
     callback(responseText); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     callback(); 
    } 
}); 

return true; }}); 

test.php

그래서 버튼을 삽입하고 DOM 값을 읽고 이메일을 보내는 test.php에 게시물을 보낼 수 있지만 배열을 전달할 수는 없습니다.

배열을 전달하는 방법을 알려주시겠습니까?

+0

campaignInfo 배열은 – rkc

+0

모두 안녕, 또 다른 2 시간 후, 나는, 무엇이 잘못된 것인지 알게 test.php하는 나는 다음과 같이 수정했다 코드 위에 고정하는 방법 : content.js에 dataType : 'JSON', 데이터 : {결과 : JSON.stringify (campaignInfo)} in php : rkc

+1

@rkc 실용적인 해결책이 있다면 질문을 (self-) 대답으로 게시하고 수락해야합니다. 교수형에 처하지 않았다. 또는 다른 사람에게 아무 소용이 없다고 생각하면 삭제할 수 있지만 반복적으로 반복하면 질문 금지를 유발할 수 있으므로주의해야합니다. – Xan

답변

1

또 다른 2 시간 후 나는 무엇이 잘못되었는지 알아 냈습니다. 위의 코드는 다음과 같이 수정해야합니다. content.js 데이터 유형 : 'JSON', 데이터 : {result : JSON.stringify (campaignInfo)} in PHP : background.js 통해 content.js에서

관련 문제