W3.JS 服務(wù)器

2022-03-29 14:35 更新

動態(tài)數(shù)據(jù)

前一章中使用的數(shù)據(jù)是從服務(wù)器獲取的靜態(tài)數(shù)據(jù)。

從數(shù)據(jù)庫中獲取動態(tài)數(shù)據(jù)的服務(wù)器代碼可以用許多不同的語言編寫。

下面是一些例子:


服務(wù)器運行 PHP 和 MySQL

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 
$conn = new mysqli("myServer", "user", "pass", "myDB"); 
$result = $conn->query("SELECT CompanyName, City, Country FROM Customers"); 
$outp = ""; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
  if ($outp != "") {$outp .= ",";} 
  $outp .= '{"Name":"'  . $rs["CompanyName"] . '",'; 
  $outp .= '"City":"'   . $rs["City"]        . '",'; 
  $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
} 
$outp ='{"customers":['.$outp.']}'; 
$conn->close(); 
echo($outp); 
?>

跨站點的 HTTP 請求

來自不同服務(wù)器(除了請求頁面)的數(shù)據(jù)請求稱為跨站點 HTTP 請求。

跨站點請求在 web 上很常見。許多頁面從不同的服務(wù)器加載 css、圖像或腳本。

然而,在現(xiàn)代瀏覽器中,出于安全原因,腳本的 HTTP 請求被限制在同一個站點。

下面一行(在上面的 PHP 示例中)允許從跨站點訪問頁面:

header("Access-Control-Allow-Origin: *");

服務(wù)器運行 Node.js 和 MySQL

var express = require('express'); 
var app = express(); 
app.get('/', function (req, res) { 
  var sql = require("mssql"); 
  var config = {user:'user', password:'pass', server:'myServer', database:'myDB'}; 
  sql.connect(config, function (err) { 
    if (err) console.log(err); 
    var request = new sql.Request(); 
    request.query('SELECT CompanyName, City, Country FROM Customers', function (err, recordset) { 
      if (err) console.log(err) 
      res.send(recordset); 
    }); 
  }); 
}); 
var server = app.listen(5000, function () { 
console.log('Server is running..'); 
});

服務(wù)器運行 ASP.NET, Razor 和 SQL Lite

@{ 
Response.AppendHeader("Access-Control-Allow-Origin", "*") 
Response.AppendHeader("Content-type", "application/json") 
var db = Database.Open("myDB"); 
var query = db.Query("SELECT CompanyName, City, Country FROM Customers"); 
var outp ="" 
var c = chr(34) 
} 
@foreach(var row in query) 
{ 
if outp <> "" then outp = outp + "," 
outp = outp + "{" + c + "Name"    + c + ":" + c + @row.CompanyName + c + "," 
outp = outp +       c + "City"    + c + ":" + c + @row.City        + c + "," 
outp = outp +       c + "Country" + c + ":" + c + @row.Country     + c + "}" 
} 
outp ="{" + c + "customers" + c + ":[" + outp + "]}" 
@outp

服務(wù)器運行 PHP 和 MS Access

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=ISO-8859-1"); 
$conn = new COM("ADODB.Connection"); 
$conn->open("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=myDB.mdb"); 
$rs = $conn->execute("SELECT CompanyName, City, Country FROM Customers"); 
$outp = ""; 
while (!$rs->EOF) { 
  if ($outp != "") {$outp .= ",";} 
  $outp .= '{"Name":"'  . $rs["CompanyName"] . '",'; 
  $outp .= '"City":"'   . $rs["City"]        . '",'; 
  $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
  $rs->MoveNext(); 
} 
$outp ='{"customers":['.$outp.']}'; 
$conn->close(); 
echo ($outp); 
?>

服務(wù)器運行 ASP.NET, VB 和 MS Access

<%@ Import Namespace="System.IO"%> 
<%@ Import Namespace="System.Data"%> 
<%@ Import Namespace="System.Data.OleDb"%> 
<% 
Response.AppendHeader("Access-Control-Allow-Origin", "*") 
Response.AppendHeader("Content-type", "application/json") 
Dim conn As OleDbConnection 
Dim objAdapter As OleDbDataAdapter 
Dim objTable As DataTable 
Dim objRow As DataRow 
Dim objDataSet As New DataSet() 
Dim outp 
Dim c 
conn = New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=myDB.mdb") 
objAdapter = New OledbDataAdapter("SELECT CompanyName, City, Country FROM Customers", conn) 
objAdapter.Fill(objDataSet, "myTable") 
objTable=objDataSet.Tables("myTable") 
outp = "" 
c = chr(34) 
for each x in objTable.Rows 
if outp <> "" then outp = outp & "," 
outp = outp & "{" & c & "Name"    & c & ":" & c & x("CompanyName") & c & "," 
outp = outp &       c & "City"    & c & ":" & c & x("City")        & c & "," 
outp = outp &       c & "Country" & c & ":" & c & x("Country")     & c & "}" 
next 
outp ="{" & c & "customers" & c & ":[" & outp & "]}" 
conn.close 
response.write(outp) 
%>



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號