XMLHttpRequest

时间:2017-08-29 20:54:53

标签: javascript google-chrome google-chrome-extension xmlhttprequest

我有一个只在Facebook上运行的Chrome扩展程序,我正在尝试将扩展程序收集的数据发送到我在GoDaddy网站服务器上的MySQL数据库。我一直收到错误消息“无法加载资源:服务器响应状态为500(内部服务器错误)”。我不确定问题是什么,因为我刚刚开始进行Web开发。 这是我的chrome扩展程序上的内容脚本的代码:

var dummyUrl = new URL ("http://www.bbc.com/news/world-us-canada-41081629");
		console.log("dummyUrl: " + dummyUrl);
		//Create XMLHttpRequest Object
		var xhttp = new XMLHttpRequest();
		//Send request
		xhttp.open("POST", "https://pocketchange.social/data.php", true);
		xhttp.send(dummyUrl);

这是我的网络服务器上的PHP文件,它运行查询以将数据发送到我的数据库:

<?php 
$mysqli = new mysqli("localhost", "Jarid", "Database", "myURL");

//Check connection
if(mysqli === false) {
    die("ERROR: Could not connect" . $mysqli->connect_error;
}

//Print host information
echo "Connection successful. Host info: " . $mysqli->host_info;

//Escape user inputs
$url = $mysqli->real_escape_string($_REQUEST['url']);
$description = $mysqli->real_escape_string($_REQUEST['description']);
$keywords = $mysqli->real_escape_string($_REQUEST['keywords']);
$content = $mysqli->real_escape_string($_REQUEST['content']);
$language = $mysqli->real_escape_string($_REQUEST['language']);

//Execute query
$query = "INSERT INTO url_data (url, description, keywords, content, language) VALUES ('$url', '$description', '$keywords', '$content', '$language')";

//Checking to see if values were inserted properly
if($mysqli->query($query) === true) {
    echo "Data successfully inserted.";
}
else {
    echo "ERROR could not execute query" . $mysqli->error;
} 

$mysqli->close();
?>

我的问题主要是我正在尝试将数据发送到完全不同的服务器吗?我不是很清楚所有这些部分如何相互通信(例如,chrome扩展如何知道如何连接到GoDaddy服务器,以及php文件如何将数据发送到数据库等等) 提前谢谢。

2 个答案:

答案 0 :(得分:0)

关于&#34; 500(内部服务器错误)&#34;,这个突出显示的SO post可以给你一些想法。

  

500代码通常表示服务器上有错误,而不是   任何与您的代码。一些想法

     
      
  • 与服务器开发人员联系以获取更多信息。您无法直接获得更多信息。
  •   
  • 验证您在调用中的参数(值)。寻找您认为可能导致服务器进程出现问题的任何内容。这个过程   不应该死,应该给你一个更好的代码,但错误发生   还有。
  •   
  • 可能是间歇性的,就像服务器数据库发生故障一样。可能值得在另一个时间尝试
  •   

您也可以在帖子中查看可能的答案。

希望这有帮助。

答案 1 :(得分:-1)

您可以尝试将值"dummyUrl: "更改为"dummyUrl="

console.log("dummyUrl=" + dummyUrl);