jQuery的Ajax请求数据时type无法使用GET

时间:2023-03-08 17:47:32

写一个ASP.NET MVC例子,它是使用jQuery的$.Ajax来呼叫控制器的数据。

jQuery的Ajax请求数据时type无法使用GET

创建一个视图:
jQuery的Ajax请求数据时type无法使用GET

运行结果:
jQuery的Ajax请求数据时type无法使用GET

一切正常,但是本例子我们只是获取数据,并没有做任何数据POST上传至控制器,我们尝试把jQuery代码的type改为GET试。
jQuery的Ajax请求数据时type无法使用GET

再次浏览,但结果没有达到我们预期的效果,没有数据显示。
jQuery的Ajax请求数据时type无法使用GET

奇怪,经查资料,原来JsonResult操作返回JSON时,JsonRequestBehavior默认是POST。因此我们需要为其指定参数选项JsonRequestBehavior.AllowGet:

jQuery的Ajax请求数据时type无法使用GET

添加此参数选项之后,显示结果跟POST是一样的。

当然,某些原因需要,你的JsonResult只能使用POST的话,可以使用另外一个参数JsonRequestBehavior.DenyGet:
jQuery的Ajax请求数据时type无法使用GET

这样显式指定DenyGet之后,jQuery的$.Ajax绝对不能用GET了。