Sencha touch 为Restful Web服务构建JSON配置的正确方法

Sencha touch 为Restful Web服务构建JSON配置的正确方法,sencha-touch,javascript,json,rest,jquery,configuration,Sencha Touch,Javascript,Json,Rest,Jquery,Configuration,我知道这个问题有点模糊,但我不知道如何解释 我正在构建一个将与ASP.NET MVC Web服务通信的应用程序 我考虑设置一个包含WebService信息的配置文件,而不是将所有restful URL放在应用程序中的所有位置。以下是我到目前为止的情况 var config = { WebService: { Url: 'http://webservice.myapp.com/', Vimeo: { Read: 'Vimeo/Read

我知道这个问题有点模糊,但我不知道如何解释

我正在构建一个将与ASP.NET MVC Web服务通信的应用程序

我考虑设置一个包含WebService信息的配置文件,而不是将所有restful URL放在应用程序中的所有位置。以下是我到目前为止的情况

var config = {
    WebService: {
        Url: 'http://webservice.myapp.com/',
        Vimeo: {
            Read: 'Vimeo/Read'
        },
        Contact: {
            Communicate: 'Contact/Communicate',
            Contact:'Contact/Contact'
        }
    }
};
虽然这是可行的,但当我设置JSONP请求时,它看起来有点滑稽

$.ajax(config.WebService.Url + config.WebService.Vimeo.Read, {
    crossDomain: true,
    dataType: "jsonp",
    success: function (data) {
        $.each(data, function (i, item) {
            videosToShow = data;
        });
    }
});

有没有更好/正确的方法来实现这一点?

jQuery ajax对象是xmlhttp的一个很好的通用包装器,但是既然您正在构建额外的抽象级别,为什么不在您自己的对象中包装$.ajax呢?该对象接受配置类型并处理ajax以及可能导致的任何错误

您可以将其设计为使您的呼叫看起来像:

root.ajax(config.WebService.Vimeo.Read, callback);
然后,您可以在启动时在包装好的ajax对象中配置url根目录

root.ajax.rootUrl = config.WebService.Url

我已经决定走另一条路了

我构建了一个名为
WebService(controller,action)

据此,我提交如下

$.ajax(WebService("myController", "myAction"), {
    crossDomain: true,
    dataType: "jsonp",
    success: function (data) {
        $.each(data, function (i, item) {
            // do stuff
        });
    }
});

工作起来像个冠军。

我觉得这看起来不好笑。。。你把URL分成两部分有什么原因吗?因为我将使用几十个服务,我不想把RESTful URI的域部分反复放在配置中。那么我认为你做得很好。