【发布时间】:2017-07-24 07:06:12
【问题描述】:
我要做什么
我的程序的目的是将本地 HTML/JS 网站的数据插入在线(非本地)mySQL 数据库。
到目前为止我所做的尝试
我尝试使用的原始方法是,让我的本地网站使用 javascript 通过在线 PHP 文件发布数据,然后让这个 PHP 文件将此信息插入到 mySQL 表中.但我不断收到 cross-origin request 相关的错误。
以编程方式到达墙壁后,我打开了Stackoverflow Thread 以确定是否甚至可以从本地网站发布到在线PHP 文件,在此期间我被专业地告知如果不修改这是不可能的尝试访问此本地网站的每台计算机上的 Chrome 相关政策。
本帖的目的
确定是否通过PHP 文件发布而不是通过JS 网站从本地 网站将数据插入mySQL 表,如果有另一个我没有考虑过的方法。
不修改浏览器政策的原因:
我无法控制在用户浏览器上实施哪些策略或他们选择使用哪种浏览器。同样,我无法在他们的系统上安装其他软件,例如阿帕奇等
总体问题
到目前为止,我尝试从 本地 HTML/JS 网站发布作为插入mySQL 数据库的方法的方法迄今未成功。我已在此处发布以确定是否存在我尚未考虑的另一种方法,而不是通过 PHP 文件发布数据,这可以应用于我的源代码,而不是用户的网络浏览器以允许执行从本地HTML/JS 网站发起的mySQL 查询?
JS 代码:
function uploadPetData(petName, petAge, petType) {
var urlString ="Pet_Name="+petName+"&Pet_Age="+petAge+"&Pet_Type="+petType;
$.ajax({
type: 'POST',
url: 'http://example.com/test.php',
crossDomain: true,
data : urlString,
contentType:contentType,
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
}
});
}
PHP 代码:
<?php
$con=mysqli_connect("...","...","...","...");
$petName = $_POST['Pet_Name'];
$petAge = $_POST['Pet_Age'];
$petType = $_POST['Pet_Type'];
$petName = mysqli_escape_string($con, $petName);
$petAge = mysqli_escape_string($con, $petAge);
$petType = mysqli_escape_string($con, $petType);
$query = mysqli_query($con, "INSERT INTO Pets (Name, Season, Episode)
VALUES ('$petName', '$petAge', '$petType')");
mysqli_close($con);
?>
【问题讨论】:
-
要求只发布数据吗?还是用户期望的响应?
-
@guest271314 我希望从 local
HTML/JS网站到 onlinemySQL执行两个请求数据库表。第一个将简单地插入一行到上面提到的 onlinemySQLdb 表中。第二个将确定 onlinemySQLdb 表中是否存在特定行,如果确定存在,则将返回TRUE或FALSE值。 -
如果用户需要在线发布和获取数据,为什么不创建一个
htmldocument在线用户提交<form>,并得到服务器的响应? -
如果我理解你的话,你问我是否希望用户能够将数据插入到在线
mySQLdb 表中,为什么不简单地将整个网站放在网上。我不想将整个网站放到网上的原因是,我希望网站本身对一些选定的用户完全私有。但是可以通过使用 onlinemySQLdb 表提供并上传到 online 的数据,在这些本地HTML/JS网页之间共享信息。如果我误解了您的意思,请纠正我,因为我真的希望为上述问题找到适用的解决方案。 -
不让网站上线。为用户提供一种在线与服务器交换数据的方式。
标签: javascript php jquery mysql cross-domain