如何通过Ajax API处理多个请求?

hel*_*rld 4 javascript ajax jquery

我有一个大项目需要通过Ajax调用处理多个函数,到目前为止我使用不同的文件来处理每个函数调用.我知道必须有更好的方法来通过API处理请求

在结构方面设计这样一个API的标准做法是什么?

谢谢!

ade*_*neo 5

它可以是从简单的东西到更复杂的东西,你如何写它取决于你,假设你是唯一一个将使用API​​的人,据我所知,没有标准设置在石头上对于这种事情,但解决这类问题的一个好方法是创建一个便利功能,无论是客户端还是服务器端,比如说

function fetch(what, data) {
    data.what = what;

    return $.ajax({
        url      : '/my/ajaxapi.php',
        data     : data,
        dataType : 'json'
    });
}
Run Code Online (Sandbox Code Playgroud)

当你需要做某事时

fetch('users', {name : 'Bill'}).done(function(result) {
    $('#user').text(result.text);
});

$('.zoidberg').on('click', function() {
    var self = this;

    fetch('zoidberg', {}).done(function(result) {
        $(self).text(result.text);
    });
});
Run Code Online (Sandbox Code Playgroud)

在服务器端你有一个文件,你如何设置它取决于使用的语言,但说PHP,你当然可以看到类等等或只是做一个简单的if/else或开关/案例

<?php

    $key = $_GET['what']; // wrap in something that makes it safe
    $res = Array();

    switch($key) {
        case 'users' : 
           // lookup in DB or something
           $res['text'] = $username;
        break;
        case 'zoidberg' :
           $res['text'] = " Why Must I Be a Crustacean in Love";
    }

    echo json_encode($res);

?>
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的例子,但是设置它以使它适合您正在做的事情,它可以为您节省大量的工作,并且您可以在一个地方拥有所有内容,以便以后轻松查找和修改,轻松添加新内容可以用ajax等获得,可能只需要获取资源,数据库连接等一次,而不是每个文件.