我正在制作一个chrome扩展程序,将跨域POST请求发送到我的服务器。基本上我可以右键单击图像并可以选择将图像URL发送到 我的服务器通过json。
文件:
manifest.json
background.html
callback.js
jquey.min.js
icon48.png
以下是来源:
的manifest.json
{
"name": "POST image",
"description": "Post image to my server",
"version": "0.1",
"permissions": [ "contextMenus", "tabs", "http://example.org/*" ],
"background": { "page": "background.html" },
"browser_action": { "default_icon": "icon48.png", "default_title": "POST image" },
"manifest_version": 2
}
background.html
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="callback.js"></script>
callback.js
function sendnow(imgurl) {
var imageurl = imgurl.srcUrl;
var resultDiv = $("#resultDivContainer");
$.ajax({
url: "http://example.org/images.php?action=add&jsoncallback=?",
type: "POST",
data: { post_key: "7xdnu3", post_data: imageurl },
dataType: "json",
success: function (result) {
switch (result) {
case true:
processResponse(result);
break;
default:
resultDiv.html(result);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("failed.");
}
});
alert('Image "'+imageurl+'" sent');
};
chrome.contextMenus.create({title: "Send to my server", contexts:["image"], onclick: sendnow});
我猜callback.js按预期运行,因为我能够右键单击图像并看到“发送到我的服务器”选项。我按预期获得了警报提示,但数据未正确发送,因为我在服务器上看不到它。
更新:服务器端的一切都很好,当我直接将它放在一个html文件(内联)中时,脚本正常工作。当它放在一个javascript文件中时它就像它不起作用这就是清单v2想要的东西。