크롬 확장 프로그램을 개발 중이며 내 확장 프로그램에 사용하는 iframe이 있습니다. 이것은 내 iframe을 사용하여 수행하는 작업입니다크롬 확장 xmlhttprequest
"이미지를 내 iframe으로 끌어서 놓을 때 콘텐츠 스크립트 중 하나에서 놓기 이벤트를 처리하고 해당 함수 호출 내 확장 코드를 전달합니다. 거기에서 xmlhttprequest 개체를 만들고 그런 다음 이미지의 URL을 내 서버의 PHP 파일로 보내십시오. "
이 현상이 발생합니다. 나는 "4"의 readyState를 얻었지만 내 브라우저에서 POST 요청이 없습니다. 브라우저의 "네트워크"탭을 선택했지만 브라우저에서 POST 요청이 없습니다 (매니페스트 파일의 권한 섹션에 내 사이트가 나열되어 있음). .>
JScript.js (컨텐츠 스크립트 중 하나)이 같은 내용 스크립트 내 프록시
drop: function(event, ui) {
var imgurl=$(ui.draggable).attr('src');
imgurl="IMGURL="+imgurl;
_post("www.somedomain.come/testing.php",imgurl,function(result){ alert("success")});
}
입니다 -
이
내 코드입니다 ->_post = function(url, data, callback)
{
console.log("sending post");
chrome.extension.sendRequest({
msgType:'post',
data: data,
url:url
}, function(response){
alert(response);
});
}
background.html에이 내 OnRequest 기능 핸들러 ->
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
if (request.msgType === 'post') {
alert("Now in OnRequest function");
// console.log("Now in Onrequest Function");
alert("Url: "+request.url + "\n Data : "+ request.data);
ajaxcallingfunction(request);
alert("completed the ajax call");
sendResponse("success");
}
});
var ajaxcallingfunction = function(request){
var xhr = new XMLHttpRequest();
xhr.open("POST",request.url, false);
xhr.onreadystatechange = function(){
alert(xhr.readyState);
if (xhr.readyState == 4) {
alert(xhr.readyState);
}
}
xhr.send(request.data);
alert("after xhr call");
};
고마워요! 그게 효과가 있지만 지금은 문제가 아니라 데이터를 요청을 보낼 수 있습니다. 이미지의 URL을 얻으려고 할 때마다 빈 문자열로 표시됩니다. 내 PHP 스크립트는 간단한 $ _POST [ "IMGURL"] 배열을 사용하여 이미지의 URL을 가져옵니다. 내가 항상 빈 문자열을 얻는 이유는 무엇입니까? 나는 서버에 보내기 전에 데이터 (이미지의 URL)를 가지고 있다고 확신한다. 나는 근본적으로 뭔가 빠져 있니? – Ajai
@Ajai 크롬 콘솔의 네트워크 탭을 열고 해당 요청에서 어떤 데이터가 전송되는지 확인합니다. 모두 괜찮아 보인다면 PHP 쪽에서'print_r ($ _ POST)'를하고 무엇이 수신되는지 확인하십시오. – serg