为什么json内容类型的ajax帖子发送数据url编码?

时间:2012-12-14 19:35:46

标签: javascript jquery ajax

为什么此调用会显示编码到URL上的值?

http://localhost:49597/api/auth?user=jon&password=123

使用以下ajax调用...

$.ajax({ url: "api/auth",
 type: "get", 
 data: { user: "jon", password: "123" },
 dataType: "json", 
 contentType: "application/json; charset=utf-8" 
});

我希望将数据作为json发送...

3 个答案:

答案 0 :(得分:1)

GET个请求没有请求正文,因此所有信息都必须作为查询参数存储在url中。我还建议不要使用Javascript对用户进行身份验证,并且肯定会将其作为POST请求。

答案 1 :(得分:1)

因为它是 GET 请求。

GET将在查询字符串中发送数据。如果您想避免这种情况,可以将类型更改为 POST POST将在请求正文中发送数据。

$.ajax({ url: "api/auth",
 type: "post", 
  //other stuff
});

如果是登录表单,您应该使用POST方法。

答案 2 :(得分:1)

因为代码指定了GET类型的请求。 GET请求通过查询字符串传递参数。如果您不想使用查询字符串,则应切换到帖子。

$.ajax({ url: "api/auth",
 type: "post", 
 data: { user: "jon", password: "123" },
 dataType: "json", 
 contentType: "application/json; charset=utf-8" 
});