web-dev-qa-db-ja.com

AJAXは、データベースにアクセスするためにPHP / ASP.NET / Javaなどのサーバー側言語を使用する必要がありますか?

AJAX PHP/ASP.NET/Javaなどのサーバー側言語を使用してデータベースにアクセスする必要がありますか?これらの言語に関連付けられたWebサービスの一種ですか?またはAJAXデータベースと直接通信できますか?

2
Ein Doofus

Ajaxは言語でも正確なテクノロジーでもないため、どのデータベースにもアクセスできません。

Javascriptを意味しますか?私はjsがあなたのSQLサーバーに直接ソケットを開くことができるとは思いません。とにかく、それはあなたのdbサーバーが広く開かれていることを必要とするでしょう、それはほとんどの場合悪い考えです。

必要なのがデータクリントサイドの限られた部分を格納することだけである場合は、localstorage APIを使用することもできます。

4
Thibault J

データベースエンジン自体にパブリックエンドポイント(Webサーバー)が組み込まれている場合は、これが可能です。私は頭の上から何かを知りませんが、いくつかは遠く離れていません。たとえば、すでにJsonを介してMongoDbと通信しています。 この質問 は、HTTP経由でそれらのエンドポイントを公開する、配置できる中間層がいくつかあることを意味します。また、おそらく OData plugins を使用できます。

いずれにせよ、それは簡単ではなく、間違いなく悪い考えです-どのように認証を行いますか?インターネットを介して誰でもデータベースにデータを直接プッシュできるようにしますか?物を削除するには?

2
George Mauer

AJAXはクライアント側です。データベースへのサーバー側接続が必要です。これは主にPHP、ASP.NETまたはJavaで行われます。

たとえば次のように、クライアントからデータベースに接続できます。

<script language="JavaScript" > 

function getSubmit() 
{ 
var LastName; 
var Firstn = names.value ; 

var cn = new ActiveXObject("ADODB.Connection"); 
//here you must use forward slash to point strait 
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/clientDB.mdb"; 
var rs = new ActiveXObject("ADODB.Recordset"); 
//var SQL = "INSERT INTO Customers(FirstName, Surname)" 
//+ " VALUES ( '"+ names.value +"', '" + surname.value +"')"; 
var SQL = "select Surname, DOB from Customers where FirstName = '" + Firstn + "'"; 

cn.Open(strConn); 
rs.Open(SQL, cn); 
surname.value = rs(0); 
DOB.value = rs(1); 
//alert(rs(0)); 
rs.Close(); 
cn.Close(); 
} 
</script> 

ソース

しかし、それはあなたの訪問者にデータベースへのユーザー名とパスワードを伝えます。そのため、サーバー側の言語が使用されます。

1
jao

まず、AJAXは Asynchronous JavaScript And XML)の略です であることに注意してください。これを理解しても、質問に直接答えることはできませんが、役に立ちます。

とにかく、AJAXはクライアント側テクノロジーのクラスターの特定の用途の包括的な用語であるため、定義上、サーバーに直接アクセスすることはありません。つまり、用語の定義は「WebページでJavaScriptを使用してサーバーと通信する」ということはほとんどありません。JavaScript自体を使用してサーバー上でプログラミングすることはできますが、それは珍しいことです。サーバー上のJavaScript)。

したがって、答えは、クライアント側のコードから直接データベースにアクセスするのではなく、データベースにアクセスするためにサーバーで実行されているコードが必要なことです。クライアント側のコードは、GET/PushリクエストのRESTful APIのようなものを使用してサーバー側のコードと通信します。

0
jhocking

まず、AJAXは、JSONまたはXMLペイロードを含むHTTPプロトコルを使用して動作します。ほとんどのデータベースは、ペイロードがSQL入力、生データが出力である専用プロトコルを使用して動作します。

次に、ほとんどのWebアプリケーションは、アプリケーションレベルでセキュリティを提供します。データベースに直接アクセスすることは、大きなセキュリティホールになるでしょう。 Webアプリケーションでは、実際のセキュリティはサーバー側のロジックでのみ実現できます。理論的には、ビュー、ストアドプロシージャを使用して、各webappユーザーを個別のDBアカウントとして作成することができます。しかし、それは実際的ではありません。汎用のサーバー側言語でこれを行う方がはるかに簡単で効率的です。

0
vartec