Jquery 最佳实践ajax,简单变量请求

Jquery 最佳实践ajax,简单变量请求,jquery,ajax,Jquery,Ajax,我正试图从jQuery发出请求,看看存储中是否有足够的资源来建造房子。我不太明白ajax函数$.get、$.post和$.ajax之间的区别,以及何时使用它们。 我认为$.ajax是一个更高级的函数,它还包括get和post,但是我什么时候使用get,什么时候使用post呢?还有,我用的是什么?用正确的方法来这里 以下是我的jQuery代码: var x = 10 // x-position var y = 10 // y-position $.get('request.

我正试图从jQuery发出请求,看看存储中是否有足够的资源来建造房子。我不太明白ajax函数$.get、$.post和$.ajax之间的区别,以及何时使用它们。 我认为$.ajax是一个更高级的函数,它还包括get和post,但是我什么时候使用get,什么时候使用post呢?还有,我用的是什么?用正确的方法来这里

以下是我的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();
        }
    });
var x=10//x位置
变量y=10//y位置
$.get('request.php?house=butch&x='+x+'&y='+y,函数(数据){
如果(数据==1){//如果有足够的资源等…返回1。
itemId++;//设置此建筑的唯一id。
$('body')。追加(“”);
$('#'+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;
}
?>

您必须了解HTTP方法是什么。以下是一些很好的参考资料:


基本上,您必须使用
GET
从服务器获取数据
,而使用
POST
向服务器提供数据
。但是,对于应该使用哪种方法没有实际限制。这取决于使用场景,值得注意的是,它们都有各自的局限性

POST
的反向功能是,当您的用户想要与其他人共享过滤结果时,他们不能仅复制和粘贴链接,这令人失望。
GET
的后面是,如果url太长,服务器可能会丢失信息()

还有一件事,一些人可能会误解,
POST
GET
更安全,因为用户看不到发送的数据。然而,除非您使用SSL,否则它们对您来说都是不安全的


在您的例子中,您的目标是“在数据库中创建一个房子”。尽管在构建资源之前必须检查资源,这看起来像是“从服务器获取信息”,但您的最终目标是存储。因此,在我看来,使用
POST
更符合逻辑。

$.get和$.POST函数只是获取和发布请求的简写方法。使用$.ajax方法,您可以使用$.get发出get请求,使用$.POST发出POST请求,并使用标准选项,如url、数据、成功回调和数据类型

$.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();
    }
});
var x=10//x位置
变量y=10//y位置
$.get('request.php',{'house':'schoot','x':x','y':y},函数(数据){
如果(数据==1){//如果有足够的资源等…返回1。
itemId++;//设置此建筑的唯一id。
$('body')。追加(“”);
$('#'+itemId).css({
marginLeft:x-($('.house').width())/2,
marginTop:y-($('.house').width())/2
});
$(“#rightMouseMenu”).hide();
}
});

因此,如果我想根据我的问题从服务器获得答案,在这种情况下,三个参数(house、x和y)是“获取数据”还是“提供数据”呢?我认为两者都是……你必须使用
GET
。您使用一些过滤器(house、x和y)从服务器获取数据。过滤器不是要存储在服务器上的数据。发送将存储在服务器上的数据时,请使用
POST
。好的!我读了w3schools链接,但不明白这篇文章的坏处是什么?为什么不经常使用它呢?是否只是如果我想保存一个链接到请求的可能性?而且,我上面没有提到,但是PHP脚本也在数据库中存储了刚构建的房子,是不是仍然正确?对不起,我误解了你的问题。我已经更新了答案。@theva,如果这个答案解决了你的问题,请记住接受它。因此,有类似问题的人可以得到帮助。好的,谢谢!如何用PHP以最佳方式回答问题?似乎有更好的解决方案,而不仅仅是呼出1或0。是吗?服务器返回的内容没有限制,因此可以是JSON、XML甚至是平面文本。但最简单的响应类型是JSON,因为它可以在客户端轻松处理。此外,jQuery可以自动识别响应类型并将正确的JSON对象返回到成功回调,或者您可以在dataType选项中手动指定它。查看此以了解更多信息。