javascript - Laravel - 将 JSON 响应包装在文本区域中

标签 javascript php jquery json laravel

我正在使用jQuery form plugin处理通过 AJAX 提交我的表单。

在不支持通过 AJAX 上传文件的旧浏览器上上传文件(而是使用隐藏的 iframe)并返回 JSON 响应时,它是 recommended将响应包装在文本区域中。

现在,在我的 Laravel 服务器端,如果请求不是 AJAX,我想返回一个包含在文本区域中的 JSON 响应。通常,要返回 JSON 响应,我会使用 return Response::json($value); 但这不允许我将响应包装在文本区域中。

照明\支持\立面\响应

public static function json($data = array(), $status = 200, array $headers = array(), $options = 0)
{
    if ($data instanceof ArrayableInterface)
    {
        $data = $data->toArray();
    }

    return new JsonResponse($data, $status, $headers, $options);
}

Laravel 中是否有一种干净的方法来返回包含在文本区域中的 JSON 响应?我知道我可以简单地返回一个包含在文本区域中的 json_encode()ed 字符串,但我只是在寻找一种可能更干净的 Laravel 风格方法。

干杯

最佳答案

我建议您创建一个 Response Macro为此。

Response::macro('myjson', function($data = array(), $status = 200, array $headers = array(), $options = 0){
    $response = Response::json($data, $status, $headers, $options);
    if(!Request::ajax()){
        return Response::make('<textarea>'.$response->getContent().'</textarea>', $status, $headers);
    }
    return $response;
}

用法:(与Response::json()完全相同)

return Respones::myjson($value);

关于javascript - Laravel - 将 JSON 响应包装在文本区域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478201/

相关文章:

javascript - 选择其中一个单选按钮并单击重定向其他页面的提交

javascript - 以编程方式在 Openlayers 中使用 anchor 进行缩放

php - 使用 html/php 多重选择器从数据库中获取多个值

javascript - 如何更改过滤器中的 servletRequest 内容长度

javascript - 如何生成 Twitter Bootstrap 模式但保持隐藏

jquery - 在导航栏中显示事件元素

javascript - RegEx:将 Android 设备名称与 JavaScript 匹配

javascript - 使用动态集合/模型进行并行查询

php - Braintree PHP SDK cURL 异常

php - 最小的 PHP Phar stub