Json 人人都可以访问Laravel5.3中的Ajax
我是新来的拉威尔,很抱歉我的代码 我正在尝试将jquery库与我的Laravel项目集成 控制器Json 人人都可以访问Laravel5.3中的Ajax,json,ajax,laravel,Json,Ajax,Laravel,我是新来的拉威尔,很抱歉我的代码 我正在尝试将jquery库与我的Laravel项目集成 控制器 public function index() { return view('products'); } public function data() { $products = Product::all(); return $products->toJson(); } use Illuminate\Http\Request; public functio
public function index()
{
return view('products');
}
public function data()
{
$products = Product::all();
return $products->toJson();
}
use Illuminate\Http\Request;
public function data(Request $request)
{
$products = Product::all();
if ($request->wantsJson()) {
return $products;
}
return abort(404);
}
路线
Route::get('/products', ['as' => 'products', 'uses' => 'ProductController@index']);
Route::get('/products/data', ['as' => 'products.data', 'uses' => 'ProductController@data']);
查看
<script>
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
$.ajax({
url: '/products/data/',
type: 'GET',
data: {_token: CSRF_TOKEN},
dataType: 'JSON',
success: function (data) {
console.log(data);
}
});
</script>
var CSRF_TOKEN=$('meta[name=“CSRF TOKEN”]”)。attr('content');
$.ajax({
url:“/products/data/”,
键入:“GET”,
数据:{u令牌:CSRF\u令牌},
数据类型:“JSON”,
成功:功能(数据){
控制台日志(数据);
}
});
一切都正常,但如果我转到/products/data/我可以在浏览器上看到json。这不应该发生
我做得对吗?这是将json数据从数据库获取到视图中的正确方法吗
谢谢。只要此信息对攻击者没有用处,您就无需担心。如果你想对网站造成伤害,产品信息很可能不是你想要的东西 确保有关用户的信息不会通过
GET请求
传输。因为通过这种方式,那些想对你的网站造成伤害的人可以获得他们想要获得的信息。确保这些数据通过POST请求
传输,这样他们就不能很容易地访问信息。还要确保您散列的信息应该只在用户自己或其他可信来源手中
在这种情况下,我一眼就看不出你的方法有什么问题
有关此主题的更多信息可在此处找到:只要此信息对攻击者没有用处,您就无需担心。如果你想对网站造成伤害,产品信息很可能不是你想要的东西 确保有关用户的信息不会通过
GET请求
传输。因为通过这种方式,那些想对你的网站造成伤害的人可以获得他们想要获得的信息。确保这些数据通过POST请求
传输,这样他们就不能很容易地访问信息。还要确保您散列的信息应该只在用户自己或其他可信来源手中
在这种情况下,我一眼就看不出你的方法有什么问题
关于这个主题的更多信息可以在这里找到:您可以使用Request
wantsJson
或ajax
方法
控制器
public function index()
{
return view('products');
}
public function data()
{
$products = Product::all();
return $products->toJson();
}
use Illuminate\Http\Request;
public function data(Request $request)
{
$products = Product::all();
if ($request->wantsJson()) {
return $products;
}
return abort(404);
}
您可以使用Request
wantsJson
或ajax
方法
控制器
public function index()
{
return view('products');
}
public function data()
{
$products = Product::all();
return $products->toJson();
}
use Illuminate\Http\Request;
public function data(Request $request)
{
$products = Product::all();
if ($request->wantsJson()) {
return $products;
}
return abort(404);
}
非常感谢。使用这种方法,我会得到一个错误。“正在尝试获取非对象的属性”。知道为什么吗?谢谢。使用这种方法,我会得到一个错误。“正在尝试获取非对象的属性”。知道为什么吗?好的,谢谢你的解释。但是,难道我没有办法阻止通过浏览器访问该URL吗?@devwebapp我认为这是不可能的。例如,您只能通过登录用户访问
GET
url来显示产品。但这是可选的。您也可以请求发布
,这样url上就没有数据,但您没有发布任何数据,所以我认为在这种情况下不需要发布。好的,谢谢您的解释。但是,难道我没有办法阻止通过浏览器访问该URL吗?@devwebapp我认为这是不可能的。例如,您只能通过登录用户访问GET
url来显示产品。但这是可选的。您也可以请求POST
,这样url上就没有数据了,但您没有发布任何数据,所以我认为在这种情况下不需要。