我想知道如何在 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.json
的 url
不正确,但我不知道考虑到 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/