Chrome扩展中的XMLHttpRequest

4

如何通过XMLHttpRequest发送和接收来自PHP文件的信息?

我尝试使用XMLHttpRequest和jQuery ajax。在两种情况下都可以正常工作,但我无法提取数据。

Js文件

var parametros = {
            "url" : url
    };

  var xhr = new XMLHttpRequest();
  xhr.open("POST", "file.php", true);
  xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {

    alert(xhr.responseText)
  }
}
xhr.send(parametros);

file.php

  <?php 
$str = $POST['url'];
echo $str;

    ?>

这个警告会显示所有php文件,包括php标签(纯文本)。 如何仅接收$str变量?

编辑:清单文件:

{
  "name": "Get pages source",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Get pages source from a popup",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": ["http://localhost/extencio/*"]
}

确保您具有CORS标头或发送jsonp。 - adeneo
你是否设置了清单文件? - epascarello
谢谢adeneo。我不知道该怎么做。我使用了带有jQuery Ajax的Jsonparse,但是它没有起作用。 - Phyron
你可以按照epascarello的建议,在你的清单文件中添加权限,这样你就能够进行跨域请求了。这里有一个链接 -> https://dev59.com/pGox5IYBdhLWcg3wHAwA - adeneo
我会尝试打包扩展adeneo。 - Phyron
1个回答

2

这听起来更像是Web服务器上的错误,你确定你的Web服务器正在执行PHP文件吗?你可以通过在浏览器中输入PHP文件的位置进行测试。

如果它也在您的Web浏览器中显示所有PHP内容,请查看以下问题: PHP代码未被执行,而是在页面上显示


是的,Web服务器可以正常执行PHP文件。我正在开发更多的PHP脚本,并且运行良好。 - Phyron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接