0

家を建てるのに十分なリソースがストレージにあるかどうかを jQuery からリクエストしようとしています。$.get、$.post、$.ajax の ajax 関数の違いと、どのタイミングで使用するかがよくわかりません。$.ajax は get と post を含むより高度な機能だと思いますが、いつ get を使用し、いつ post を使用するのでしょうか? また、ここで .get を正しい方法で使用していますか?

ここに私のjQueryコードがあります:

    var x = 10 // x-position
    var y = 10 // y-position
    $.get('request.php?house=cottage&x='+x+'&y='+y, function(data){
        if(data == 1){ // If there is enough resources etc... return 1.
            itemId++;   // Set unique id for this building.
            $('body').append("<div class='house' id='" + itemId + "'></div>"); 
            $('#'+itemId).css({
                marginLeft: x - ($('.house').width())/2,
                marginTop: y - ($('.house').width())/2
            });
            $('#rightMouseMenu').hide();
        }
    });

そして request.php:

<?php
$house = $_GET['house'];
$x = $_GET['x'];
$x = $_GET['y'];

// Some request to database to see if there is enough resources to build a house in enoughResources()

if(enoughResources() == 1){
    echo 1;
}else{
    echo 0;
}
?>
4

2 に答える 2

1

あなたは何であるかを学ばなければなりませんHTTP methods。ここにいくつかの良い参考文献があります:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html http://www.w3schools.com/tags/ref_httpmethods.asp

基本的に、 to を使用GETget data from the serverながらto を使用POSTする必要がありますgive data to the server。ただし、どの方法を使用すべきかについて実際の制限はありません。使用するシナリオによって異なりますが、どちらにも独自の制限があることに注意してください。

逆にPOST、ユーザーがフィルタリングされた結果を他のユーザーと共有したい場合、リンクをコピーして貼り付けることができず、残念です。逆にGET、URL が長すぎるとサーバーが情報を失う可能性があります (詳細)。

もう1つ、送信されたデータを見ることができないPOSTよりも安全であると誤解する人もいます. GETただし、SSL を使用しない限り、どちらも意図的な人物にとって安全ではありません。

あなたの場合、ターゲットは「データベースに家を作成する」ことです。ビルドする前にリソースを確認する必要がありますが、これは「サーバーから情報を取得する」ように見えますが、最終的な目標は保存です。したがって、私の意見では、使用するPOST方がより論理的です。

于 2013-09-23T08:16:11.513 に答える
0

$.get および $.post 関数は、$.ajax メソッドを使用した GET および POST リクエストの簡略化されたメソッドです。$.get を使用して GET リクエストを作成し、$.post を使用して、url、data などの標準オプションを使用して POST リクエストを作成できます。 、成功のコールバックとデータ型。

$.get( URL [, データ ] [, 成功 (データ, テキストステータス, jqXHR) ] [, データタイプ] )

$.post( URL [, データ ] [, 成功 (データ, テキストステータス, jqXHR) ] [, データタイプ] )

$.ajax メソッドを使用して、より多くのオプションを指定してリクエストを作成します。

基本的に、例を次のように書き直すことができます。

var x = 10 // x-position
var y = 10 // y-position
$.get('request.php', {'house': 'cottage', 'x': x, 'y': y}, function(data){
    if(data == 1){ // If there is enough resources etc... return 1.
        itemId++;   // Set unique id for this building.
        $('body').append("<div class='house' id='" + itemId + "'></div>"); 
        $('#'+itemId).css({
            marginLeft: x - ($('.house').width())/2,
            marginTop: y - ($('.house').width())/2
        });
        $('#rightMouseMenu').hide();
    }
});
于 2013-09-23T08:26:16.487 に答える