如何将js字符串从chrome扩展内容脚本发送到php

时间:2018-02-24 08:15:37

标签: javascript php jquery ajax

我正在尝试制作一个chrome扩展程序,它会废弃某些网站的文本数据(当我访问该页面时)并将其保存在SQL数据库中。用于数据报废的js工作正常,它可以保存字符串中我需要的所有数据。现在我想将js字符串发送到我使用XAMPP的localhost php文件,但看起来php无法接收我发送的字符串。
我的用于发送数据的js代码段

$.post("http://localhost:8080/naukri/index.php",            //link to localhost php  
    {variable: finalVal},                               //finalVal contains the string I want to send  
    function(data) {if (data != "") {
    alert('We sent Jquery string to PHP : ' + data);                //alert shows the string I am sending  
    window.open("http://localhost:8080/naukri/index.php");  //open php page to confirm if data received or not 
    console.log(data);    //SOLVED use this instead of window.open()  
    }  
});  

我的PHP代码

$test;  
$test = $_POST['variable'];  
echo $test;  //just checking if string received or not, I will worry about inserting into SQL later.  

现在警报显示我正在尝试发送的正确字符串,但php页面显示此错误

" Notice: Undefined index: variable in C:\xampp\htdocs\naukri\index.php on line 4"  

我认为这意味着php文件没有收到我发送的字符串 请告诉我如何成功地将字符串从js发送到php。

1 个答案:

答案 0 :(得分:1)

你的问题是你打开你的php文件两次。

  • 你要做的第一件事是向你的php文件发送一个帖子请求。
  • 然后你试图通过在另一个窗口打开你的php页面来检查是否收到了它(通过get请求)。

这两个对你文件的调用是完全独立的,因此第一个请求中传递的数据在你的第二个请求中不可用,因为php是无状态的。

如果你想检查你的网络扩展是否与你的php一起正常工作,你将不得不检查ajax请求实际返回的内容,而不是第二次调用该页面。打开浏览器开发人员工具的网络选项卡进行检查。