如何使用AmplifyJS构建带有可选数据的请求?

时间:2013-04-12 18:47:37

标签: jquery ajax amplifyjs

我有一个这种格式的RESTful Web服务:

/users?age={age}

根据定义,无论我是否添加年龄参数,Web服务都有效。所以这两个例子都是正确的:

/users

/users?age=18

放大器的请求定义:

amplify.request.define( "usersService", "ajax", {
  url: "/users",
  type: "GET",
  data: {age : "{age}"}
});

有效的调用:

var myAge = 18;
amplify.request("usersService", {age : myAge});

结果是:

GET /users?age=18 
Response code: 200 OK

不起作用的调用:

var myAge = null;
amplify.request("usersService", {age : myAge});

结果是:

GET /users?age=
Response code: 400 BAD REQUEST

未定义年龄时我期待的正确结果是:

GET/users
Response code: 200 OK

知道如何使这个例子有效吗?

提前致谢。 问候 Neuquino

2 个答案:

答案 0 :(得分:0)

尝试:

amplify.request(“usersService”,{});

amplify.request( “usersService”);

答案 1 :(得分:0)

解决方案不是在request.define中定义“data”,而是在调用中添加或不添加age属性。

var input = null;
if(myAge != null){
  input.age = myAge
}
amplify.request("usersService",input);


amplify.request.define( "usersService", "ajax", {
  url: "/users",
  type: "GET",    
});

输入在正文中合并,因此如果为空,则不发送任何内容。