我即将创建我的第一个 Chrome 扩展程序(它是一个弹出窗口),它将 POST 数据到服务器。以为这很容易,但我卡住了。
在 manifest.json 我设置了“http://mypage[dot]com/”和“http://mypage[dot]com/*”的权限,这样我就可以访问“mypage[dot]com/api”数据必须发送到的地方。所以我的 popup.html 看起来像:
<!doctype html>
<html lang="en">
<meta charset="UTF-8">
<title>myExtension</title>
</head>
<body>
<form name="myform">
<input type="text" name="myText" id="myText"/>
<input type="submit" name="senden"/>
</form>
</body>
<script src="jquery-1.8.2.min.js"></script>
<script src="popup.js"></script>
</html>
所以我的 popup.js 看起来像:
document.forms["myForm"].addEventListener("submit", sendRequest)
function sendRequest() {
var myVar= $('#mytext').val();
var myrequest= $.ajax({
type: 'POST',
url: 'http://mypage.com/api/',
data: {screen_name: 'myname', api_key: 'myKey', var1: myVar},
success: function(data, textStatus){
alert('request successful');
},
error: function(xhr, textStatus, errorThrown){
alert(xhr); alert(textstatus); alert(errorThrown);
}
});
}
现在,当我点击提交按钮时,它只会给我这三个警报,第一个说:[object Object],第二个:错误,第三个是空的。
我试图解决这个问题,但我不知道错误在哪里。我还读到了一些 background.html 和 content_script.js,但我不知道我必须用它们做什么,我在互联网上找到了一些扩展,只包含 popup.html 和 popup.js,它们工作得和他们一样好应该做(例如 domai.nr-extension)。
所以我很高兴能解释我必须使用什么以及如何在弹出扩展中正确发布数据。