我正在尝试通过Jquery Ajax请求将我的chrome扩展中的一些数据发送到我的Php页面。请求已成功发送,但数据值为空。 即我试图发送#urlname的值,但我无法做到。当我从页面运行它时(即不是来自chrome扩展名)它工作正常,但是当我从chrome扩展使用它时它不发送值。 我已经花了很多时间来修复它,尝试了不同的方法来发送请求,但是没有成功并且每次都得到相同的结果。 我想我在chrome扩展部分遗漏了一些东西(一些安全问题,我不知道)。我是新手,这是我的第一个扩展。 请帮忙
以下是一些细节
的manifest.json
{
"manifest_version": 2,
"name": "First Extention",
"description": "POST details of the current page to a remote endpoint.",
"version": "0.1",
"content_scripts": [{
"js": ["contentscript.js"]
}],
"web_accessible_resources": ["script.js"],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"http://www.example.com/",
"contextMenus",
"bookmarks",
"tabs",
"http://*/",
"https://*/"
]
}
popup.html
<form id="url">
<label for="url">A bar</label>
<input id="urlname" name="url" type="text" value="" />
<input type="submit" value="Send" />
</form>
<div id="result"></div>
<script src="js/vendor/jquery-1.10.2.min.js"></script>
<script src="js/main.js"></script>
<script src="js/background.js"></script>
* background.js
$(document).ready(function() {
chrome.tabs.getSelected(null, function(tab) {
var tabId = tab.id;
var tabUrl = tab.url;
//var tabTitle=tab.title;
document.getElementById("urlname").value=tabUrl;
//document.getElementById("title").value=tabTitle;
chrome.browserAction.setBadgeText({text: "10+"});
});
});
main.js
$("#url").submit(function(event) {
event.preventDefault();
$("#result").html('');
var values = $(this).serialize();
$.ajax({
url: "http://www.example.com/adddata.php",
type: "post",
data: values,
success: function(text){
alert(text);
$("#result").html('Submitted successfully');
},
error:function(){
alert("failure");
$("#result").html('There is error while submit');
}
});
});
adddata.php
<?php
include('connection.php');
echo $_POST['url']."hello";
**
//
mysql insert into database query and rest of the php code.
//
?>
响应是&#34;你好&#34;。相反它应该是$_POST['url']
(值)+你好。但是
$ _POST [&#39; url&#39;]为什么空?因此我无法执行其余的php
操作
由于