我目前正在尝试使用laravel和angular.js建立威士忌网上商店。我试图简单地将产品添加到我的购物篮中,但我的控制台中仍然存在相同的错误。我想把我的product_id和我的basket_id放在'basket_product'栏中。现在我想把product_id放在id为3的篮子里。
我已经被困在这个问题上好几天了,我似乎无法弄明白。
这些是错误:
这是我的' BasketController.php '
class BasketController extends Controller
{
public function index()
{
return Basket::join('basket_product', 'baskets.id', '=', 'basket_product.basket_id')->get();
}
public function create()
{
}
public function store(Request $request)
{
$rules = [
'basket_id' => 'required|integer',
'product_id' => 'required|integer',
];
$this->validate($request, $rules);
$basket = new Basket($request->only(['basket_id', 'product_id']));
if ($basket->save()) {
return response()
->json($basket)
->setStatusCode(Response::HTTP_CREATED);
}
}
public function show()
{
}
}
这是我的' product.controller.js '
vm.$$ix = {
save : createBasketItemAction
};
vm.item = {
basket_id: 3,
products_id: $state.params.id
};
switch ($state.current.name) {
case 'products.grid':
vm.products = getProductsAction();
vm.categories = getCategoryAction();
break;
case 'products.show':
vm.categories = getCategoryAction();
vm.product = getProductAction();
vm.$$ix.save = createBasketItemAction;
break;
default:
break;
}
function createBasketItemAction() {
$log.info(createBasketItemAction.name, 'post:', vm.item);
return BasketResource
.save(vm.item, success, error);
function error(error) {
$log.error(createBasketItemAction.name, 'ERROR', 'error:', error);
}
function success(resource, responseHeader) {
$log.log(createBasketItemAction.name, 'SUCCESS', 'resource:', resource, 'responseHeader:', responseHeader());
$state.go('blog.posts');
}
}
这是我在“ product.view.html ”
中触发帖子事件的代码行<md-button ng-click="vm.$$ix.save()" ng-disabled="postForm.$invalid">Add to Basket</md-button>
最后,这是我的' basket-resource.service.js '
;(function () {
'use strict';
angular.module('app.basket')
.factory('BasketResource', BasketResource);
/* @ngInject */
function BasketResource(
// Angular
$cacheFactory,
$resource,
// Custom
UriService
) {
var url = UriService.getApi('basket_products');
var paramDefaults = {
};
var actions = {
'get': {
method: 'GET',
isArray: true
},
};
return $resource(url, actions);
}
})();
这就是我的数据库的构建方式:
提前感谢!
答案 0 :(得分:0)
我认为您正在对与您的网页所在的域不同的域执行XMLHttpRequest。因此浏览器会阻止它,因为出于安全原因,它通常允许同一来源的请求。当您想要执行跨域请求时,您需要做一些不同的事情。有关如何使用laravel启用CORS的教程:http://en.vedovelli.com.br/2015/web-development/Laravel-5-1-enable-CORS/