javascript - 如何在 Laravel 中路由到 JSON 文件?

标签 javascript json ajax laravel

我想知道如何在 Laravel 项目中创建指向 JSON 文件的路由。我想做的是从 JSON 文件中获取数据,但不确定如何创建执行此操作的路由。这是我的代码:

function ajax_get_json(){
    var results = document.getElementById("results");
    var hr = new XMLHttpRequest();
    var url = "/products/products.json";
    hr.open("GET", url, true);
    hr.setRequestHeader("Content-type", "application/json", true);
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var data = JSON.parse(hr.responseText);
            document.getElementById("results").innerHTML = return_data;
            results.innerHTML = data.productName;
        }
    }
    hr.send(null);
    results.innerHTML = "requesting data....";
}

当我尝试此操作时,出现 404 错误,并且我不确定如何创建到 JSON 文件的路由。这是我现在所拥有的:

Controller

public function getJSON() {

    return view('products.products.json');
}

路线

Route::get('/products', 'ProductController@getJSON');

但这不起作用。我怀疑 /products/products.jsonurl 不正确,但我不知道考虑到 Laravel 正在寻找 php 文件,我还能如何实现这一点。如何通过创建正确类型的路由或访问正确的 url 来从 JSON 文件获取数据?

最佳答案

如果您直接从文件发送 json,您可以使用 laravel 的文件响应,如果该文件位于您的资源文件夹中,那么您可以使用 resource_path 帮助程序来获取路径

return response()->file(resource_path('assets/js/data/filename'));

请记住将文件名替换为您的 JSON 文件名。

您还可以传递这样的 header

return response()->file($pathToFile, $headers);

如果您需要对 json 内容执行某些操作,那么您也可以从文件中解码 json

$file = file_get_contents(resource_path('assets/js/data/file.json'));
$jsonData = json_decode($file, true));

这里是文档的链接。 https://laravel.com/docs/5.6/helpers#method-resource-path https://laravel.com/docs/5.6/responses#file-responses

祝你好运。

关于javascript - 如何在 Laravel 中路由到 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51160214/

相关文章:

javascript - jQuery 返回 [object Object] 值(镜像文本输入字段的值)

javascript - 当你已经选择了对象时,如何在 jQuery 中获得直接子对象?

json - 将 JSON 数据解析为 Excel 工作表

javascript - PHP:带有API的真实IP地址

javascript - 未捕获的类型错误 : Cannot read property 'outerHTML' of null

javascript - 嵌入式谷歌地图无法在 Firefox 中完全呈现

javascript回调动画

java - Json 反序列化日期不起作用

c# - 从 ModalPopup 回发,但保持可见?

jquery - 从更改时的选择中获取值(value)