Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何发布Ajax请求_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何发布Ajax请求

Javascript 如何发布Ajax请求,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我第一次处理AJAX请求,我写的代码有问题 API数据如下所示: "data": { "id": 5, "name": "Big Mac beef burger", "description": "Big Mac beef burger with tomato slices and mayoneez", "image": "http://spoon.mtech-ins.com/uploads/products/big_mac.jpg", "price"

这是我第一次处理AJAX请求,我写的代码有问题

API数据如下所示:

"data": {
    "id": 5,
    "name": "Big Mac beef burger",
    "description": "Big Mac beef burger with tomato slices and mayoneez",
    "image": "http://spoon.mtech-ins.com/uploads/products/big_mac.jpg",
    "price": 100.52,
    "basic_price": true,
    "provider_name": "Mcdonald's Restaurant egypt",
    "has_offer": true,
    "discount": 20,
    "discount_price": 80.416,
    "favorite": false,
    "product_additions": [
        {
            "id": 1,
            "name": "Size",
            "required": true,
            "multiple": false,
            "product_addition_items": [
                {
                    "id": 1,
                    "name": "Small",
                    "price": 20
                },
                {
                    "id": 2,
                    "name": "Medium",
                    "price": 50
                }
            ]
        }
    ]
}
我只想在我的请求中添加
“产品添加项”
,该请求嵌套于
“产品添加项”

我的两个问题是:

  • 如何将数据传递到此深度嵌套数组(产品添加项)

  • 如何在请求正文中传递数组

  • 这是我写的代码:

    $.ajax({
          type: 'POST',
          url: `http://spoon.mtech-ins.com/api/admin/v1/addAddition/5`,
          headers: {
            Authorization:
              'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zcG9vbi5tdGVjaC1pbnMuY29tXC9hcGlcL2FkbWluXC92MVwvdXNlcnNMb2dpbiIsImlhdCI6MTUyOTU5NzU3NywiZXhwIjoxNTM3MzczNTc3LCJuYmYiOjE1Mjk1OTc1NzcsImp0aSI6IkY1azBEQkk1MEhrdm5saHEiLCJzdWIiOjE0OCwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.XKNfm6cxBQnfKaEDMxsVK0vTETzIp6uisA0UwB0Q2-Q'
          },
          data: {
            name: product.name,
            required: product.required,
            multiple: product.multiple,
            options: options
          },
          success: data => {
            console.log(data);
          },
          error: err => console.log(err)
        });
    
    我确信这是错误的,因为它不起作用,但我不知道该怎么办


    谢谢:)

    您应该使用
    方法
    键,而不是
    类型
    。试试这个

    $.ajax({
      method: 'POST',
      url: `http://spoon.mtech-ins.com/api/admin/v1/addAddition/5`,
      data: {
        name: product.name,
        required: product.required,
        multiple: product.multiple,
        options: options
      },
      success: function(data, status, xhr) {
        console.log(data);
      },
      error: function(err) {
        console.log(err);
      }
    });
    

    要将数组传递给请求主体,只需调用带有响应参数的函数。response参数接收函数在成功请求时接收的任何对象或值

    success: function (data) { // here data is the response parameter
                    response($.map(data, function (eachData) {  //map is used to iterate each value if it contains a list or array
                        // do whatever you want to do with each data
                    ))
                }