ajax - 未捕获的类型错误:在 Laravel 项目中使用 AJAX 时无法将 undefined 或 null 转换为对象
问题描述
我正在尝试使用ajax使用 bumbummen99/shoppingcartbumbummen99/shoppingcart将产品数据发布到购物车
用于收集要发送到购物车的产品数据的按钮:
<button type="submit" class="btn btn-primary mb-2" **onClick="addToCart()"** >Add to Cart</button>
然后我将函数设为:
function addToCart() {
var product_name = $('#pname').text();
var id = $('#product_id').val();
var color = $('#color option:selected').text();
var size = $('#size option:selected').text();
var quantity = $('#qty').val(1);
$.ajax({
type: "POST",
dataType: 'json',
data:{
color:color, size:size, quantity:quantity, product_name:product_name
},
**url: "/cart/data/store/"+id,**
success:function(data){
console.log(data)
}
})
}
然后我在上面的 ajax 中为所需的 url 做了一个路由:
Route::post('/cart/data/store/{id}', [CartController::class, 'AddToCart']);
控制器中用于将产品数据添加到购物车的功能:
public function AddToCart(Request $request, $id){
$product = Product::findOrFail($id);
if ($product->discount_price == NULL) {
Cart::add([
'id' => $id,
'name' => $request->product_name,
'qty' => $request->quantity,
'price' => $product->selling_price,
'weight' => 1,
'options' => [
'image' => $product->product_thumbnail,
'color' => $request->color,
'size' => $request->size,
],
]);
return response()->json(['success' => 'Successfully Added on Your Cart']);
}else{
Cart::add([
'id' => $id,
'name' => $request->product_name,
'qty' => $request->quantity,
'price' => $product->discount_price,
'weight' => 1,
'options' => [
'image' => $product->product_thumbnail,
'color' => $request->color,
'size' => $request->size,
],
]);
return response()->json(['success' => 'Successfully Added on Your Cart']);
}
} // end method
错误显示为
Uncaught TypeError: Cannot convert undefined or null to object
at entries (<anonymous>)
at e (jquery-1.11.1.min.js:4)
at Vc (jquery-1.11.1.min.js:4)
at Vc (jquery-1.11.1.min.js:4)
at Vc (jquery-1.11.1.min.js:4)
at Vc (jquery-1.11.1.min.js:4)
at Function.m.param (jquery-1.11.1.min.js:4)
at Function.ajax (jquery-1.11.1.min.js:4)
at addToCart ((index):6470)
at HTMLButtonElement.onclick ((index):6356)
e @ jquery-1.11.1.min.js:4
Vc @ jquery-1.11.1.min.js:4
Vc @ jquery-1.11.1.min.js:4
Vc @ jquery-1.11.1.min.js:4
Vc @ jquery-1.11.1.min.js:4
m.param @ jquery-1.11.1.min.js:4
ajax @ jquery-1.11.1.min.js:4
addToCart @ (index):6470
onclick @ (index):6356
并且在检查网络时,单击“添加到购物车”按钮时没有显示任何内容
非常感谢您的帮助
解决方案
推荐阅读
- python - 无法使用 Python 3.7 的 pip 安装 pygame - 命令“python setup.py egg_info”失败,错误代码为 1
- javascript - 调用函数而不是重新加载页面
- c++ - 通过 size_type 和 const_iterator 的正确返回类型是什么?
- spring - 如何获取 @EnableOAuth2Sso 注释
- ruby-on-rails - Travis CI:在 Rails 服务器上启动 cypress
- android - ndk android中无法导入libpng、libjpeg
- sql - Teradata - 计算以前的值
- xml - Apache FOP:PDF 中的图表和图表?
- java - Selenium 中的 .sendKeys 和 .sendText 有什么区别
- apache-flink - Flink 自动缩放和最大并行度