为jQuery创建REST参数会消耗Web服务

时间:2010-08-04 00:08:19

标签: jquery ajax json rest

我使用jQuery来使用我构建的Web服务,输入当前是序列化的JSON,以及通过jQuery AJAX输出。

我想通过添加URI查询字符串参数使服务更加RESTful,以便用户在将URI保存为状态时可以访问同一页面的搜索结果,查询字符串等。

我认为我的网络服务不需要太多变化。我应该使用jQuery访问和重写URI吗?如果有的话,是否有任何帖子证明如何做到这一点?

由于

网络服务:

/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public OutputData updateProductsList(InputData request)
    {
        //...//

        return result;
    }

使用JSON序列化的Ajax请求:

//Build the ajax Request
    var req = { request: { qtype: "ProductName", query: queryText, page: resultPage, rp: rP} };

    $.ajax({
        type: "POST",
        url: "/webservice/WebService.asmx/updateProductsList",
        data: JSON.stringify(req),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

1 个答案:

答案 0 :(得分:1)

我不了解网络服务,但在jQuery方面,如果qtypequerypagerP应该是您的参数,只需更改:

data: JSON.stringify(req)

data: req.request

或只是

var request: { qtype: "ProductName", query: queryText, page: resultPage, rp: rP} };
//and
data: request

当然,您必须更改您的Web服务以接受这些GET参数。

我希望我的问题是对的。