mut*_*ity 3 ajax controller laravel
因此,如果请求是针对JSON的,那么这三种方法都在Laravel文档中进行测试.
我基本上想要为请求JSON或AJAX的任何请求返回JSON.
Request::ajax()
Request::isJson()
Request::wantsJson()
我可以使用这些吗?它们是否重叠?
并非所有AJAX请求都需要JSON响应,因此request()->ajax()在您想要确定请求是否为a XmlHttpRequest,但响应不关心JSON的情况下,利用是有用的.
并非所有包含JSON的请求都需要JSON响应.因此,如果您不关心响应是否需要JSON,但想要确定JSON是否在请求中发送,那么isJson()对您有用.
并非所有需要JSON响应的请求都是由AJAX驱动的,因此wantsJson在您想要返回JSON数据的情况下非常有用,但您并不关心请求如何到达您的服务器.
根据这些描述,进行断言并选择适当的函数.
对于 2023 年访客:
\n长话短说
\najax()只检查调用方法request,不检查格式。和request可以response是任何类型。
isJson()仅检查request. 必须request是 JSON 格式,但response可以是任何类型。
wantsJson()仅检查response. 必须response是 JSON 格式,但request可以是任何类型。
对于expectsJson(),请阅读全文。此方法有一个故事,使Mustafa Ak\xc3\xa7akaya\ 的答案和MR_AMDEV\ 的答案不完整或不正确。
Laravel 10文档和方法定义可能会令人困惑,尤其是在使用wantsJson().
使用这些函数时必须小心,因为输出可能True在 Postman 中,但False在浏览器中。
ajax()1:
request是 AJAX 调用的结果。request.request是 类型XMLHttpRequest,表示 AJAX 调用。X-Requested-WithHTTP 标头,则这是一个 AJAX 请求。request.response。isJson()2:
request正在发送 JSON。request./json OR 。+jsonwantsJson()3:
request请求 JSON 作为response.response.response ,必须将其设置为accept标头。accept标头已预设并填充(已设置)并且[包含/json OR +json ],则返回 true。expectsJson()4:
request是 ajax AND不是 pjax AND接受任何内容类型。所以,在这种情况下,response可能是任何东西。wantsJson()。request.response.response,它可以被设置为accept标题。accept设置了标头,则它可以包含任何内容类型。请让我知道,如果你有任何问题。
\n| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |