我做了一个连接到 mysql 的 chrome 扩展,然后显示结果。
我有凭证(ajax.js、consulta.php 和 consulta_empleados.html)。当我从 http://localhost/ajax/consulta_empleados.html
开始时它有效但是当我执行扩展时它没有显示结果,它显示了 php 代码并且它会有显示查询结果。
看这个:
我该怎么做?
这里的代码(简单的 ajax 和 php):
list
{
"name": "demo",
"version": "1.0",
"description": "Making your first Google Chrome extension.",
"icons":{
"128":"icon_128.png"
},
"browser_action": {
"default_icon": "icon.png",
"popup": "consulta_empleados.html"
}
consulta_empleados.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Consulta Registro con AJAX</title>
<!-- referenciamos al archivo ajax.js donde se encuentra nuestra funcion objetoAjax-->
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body onLoad="MostrarConsulta('consulta.php')">
<div id="resultado"></div>
</body>
</html>
ajax.js
// JavaScript Document function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp; }
function MostrarConsulta(datos){
divResultado = document.getElementById('resultado');
ajax=objetoAjax();
ajax.open("GET", datos);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
}
}
ajax.send(null) }
咨询.php
<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "tic";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
//consulta todos los empleados
$sql=mysql_query("SELECT name FROM usuarios",$con);
//muestra los datos consultados echo "</p>Nombres </p>"; while($row = mysql_fetch_array($sql)){
//echo "<p>".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p> n"; echo "<p>".$row['name']."</p>"; } ?>
谢谢
最佳答案
嗯。实际答案是:发生这种情况是因为您尝试相对于扩展程序的基本 URL 加载“consulta.php”。并且只有从 http://localhost/... 而不是 chrome-extension://yourExtensionId/... 调用你的 php 代码才能执行
其次 - 无需实现 ActiveX 对象来获取 XMLHttpRequest 对象 - 您只需在 Google Chrome 中使用新的 XMLHttpRequest。
关于php - chrome连接mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961730/