无法通过chrome扩展的Ajax请求发送数据

时间:2014-05-11 14:41:56

标签: javascript jquery ajax google-chrome google-chrome-extension

我正在尝试通过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
  操作

由于

0 个答案:

没有答案