如何在API调用中修复XMLHttpRequest中的“前馈响应不成功”?

时间:2019-06-06 18:59:53

标签: javascript jquery api

我正在尝试通过API访问咖啡馆菜单。当我输入参数并在API页面上运行测试时,它会成功返回菜单json。但是,当使用该站点提供的Jquery / Javascript时,我无法正常工作。我不断收到“控制台中的“ Preflight响应未成功”错误。

我在nhrmc.org域,JS Playgrounds和本地页面上进行了尝试。

API站点提供的代码示例:

<!DOCTYPE html>
<html>
<head>
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
    $(function() {
        var params = {
            // Request parameters
        };

        $.ajax({
            url: "https://bite-external-api.azure-api.net/extern/menus/{locationId}/{startDate}/{endDate}/{menuId}?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("sodexo-accesscodes","");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
            },
            type: "GET",
            // Request body
            data: "{body}",
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function() {
            alert("error");
        });
    });
</script>
</body>
</html>

My code with parameters included:

    <!DOCTYPE html>
    <html>
    <head>
        <title>JSSample</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    </head>
    <body>

<script type="text/javascript">
    $(function() {
        var params = {
            locationId: '31839001',
            startDate: '06-06-2019',
            endDate: '06-06-2019',
            menuId: '978',
        };

        $.ajax({
            url: "https://bite-external-api.azure-api.net/extern/menus/31839001/06-06-2019/06-06-2019/978?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("sodexo-accesscodes","A6924");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{511da5f617d347f089a322dbcafea254}");
            },
            type: "GET",
            // Request body
            data: "{body}",
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function() {
            alert("error");
        });
    });
</script>
</body>
</html>

这是在API测试页中运行时的Json:

Pragma: no-cache
Request-Context: appId=cid-v1:3c26151c-68a9-4863-a29a-dd58a7c4b00a
Arr-Disable-Session-Affinity: True
Cache-Control: no-store, must-revalidate, no-cache
Date: Thu, 06 Jun 2019 18:53:11 GMT
Content-Length: 72267
Content-Type: application/json; charset=utf-8
Expires: Thu, 06 Jun 2019 18:53:11 GMT

[{
  "menuId": 978,
  "locationId": "31839001",
  "name": "NEW HANOVER REGIONAL MED CTR - FRESH INSPIRATIONS",
  "showToConsumers": true,
  "sourceSystemKey": "31839001 - 2215",
  "outletId": 17942,
  "outletName": null,
  "lastPostingDate": null,
  "menuDays": [{
    "menuDayId": 4807925,
    "menuId": 978,
    "date": "2019-06-07T00:00:00",
    "menuItems": [{
      "menuItemId": 893321623,
      "menuDayId": 4807925,
      "foodItemId": 4505,
      "uomId": 170279,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 0,
      "sourceSystemKey": "425982085",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Old Fashioned Oatmeal",
      "number": "46696",
      "description": "Creamy Hot Oatmeal",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": true,
      "isVegetarian": false,
      "isMindful": true,
      "uomDescription": "8 oz Ladle",
      "kcal": 180.97690000000000,
      "upc": "402000219824",
      "url": null,
      "rowVersion": "AAAAAFFE3Is="
    }, {
      "menuItemId": 893321624,
      "menuDayId": 4807925,
      "foodItemId": 4505,
      "uomId": 170279,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 0,
      "sourceSystemKey": "422816206",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Old Fashioned Oatmeal",
      "number": "46696",
      "description": "Creamy Hot Oatmeal",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": true,
      "isVegetarian": false,
      "isMindful": true,
      "uomDescription": "8 oz Ladle",
      "kcal": 180.97690000000000,
      "upc": "402000219824",
      "url": null,
      "rowVersion": "AAAAAFFE3Iw="
    }, {
      "menuItemId": 893321621,
      "menuDayId": 4807925,
      "foodItemId": 4427,
      "uomId": 169248,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 1,
      "sourceSystemKey": "422816207",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Cheesy Grits",
      "number": "48639",
      "description": "Traditional Creamy Grits Cereal Enhanced with Cheddar Cheese and Cayenne Pepper",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": false,
      "isMindful": false,
      "uomDescription": "4 oz Ladle",
      "kcal": 173.69560000000000,
      "upc": "402000222114",
      "url": null,
      "rowVersion": "AAAAAFFE3Ik="
    }, {
      "menuItemId": 893321622,
      "menuDayId": 4807925,
      "foodItemId": 4427,
      "uomId": 169248,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 1,
      "sourceSystemKey": "425982086",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Cheesy Grits",
      "number": "48639",
      "description": "Traditional Creamy Grits Cereal Enhanced with Cheddar Cheese and Cayenne Pepper",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": false,
      "isMindful": false,
      "uomDescription": "4 oz Ladle",
      "kcal": 173.69560000000000,
      "upc": "402000222114",
      "url": null,
      "rowVersion": "AAAAAFFE3Io="
    }, {
      "menuItemId": 893321643,
      "menuDayId": 4807925,
      "foodItemId": 4476,
      "uomId": 173407,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 2,
      "sourceSystemKey": "422816208",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Grits",
      "number": "49314",
      "description": "Traditional Creamy Grits Cereal",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": true,
      "isMindful": true,
      "uomDescription": "6 oz Ladle",
      "kcal": 121.09770000000000,
      "upc": null,
      "url": null,
      "rowVersion": "AAAAAFFE3J8="
    }, {
      "menuItemId": 893321644,
      "menuDayId": 4807925,
      "foodItemId": 4476,
      "uomId": 173407,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Hot Cereals",
      "courseSortOrder": 1,
      "sortOrder": 2,
      "sourceSystemKey": "425982087",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Grits",
      "number": "49314",
      "description": "Traditional Creamy Grits Cereal",
      "planningGroupId": 7,
      "planningGroupDescription": "CEREALS-HOT, COLD",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 88,
      "foodSubCategoryDescription": "Cereal",
      "foodSubCategorySortOrder": 2,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": true,
      "isMindful": true,
      "uomDescription": "6 oz Ladle",
      "kcal": 121.09770000000000,
      "upc": null,
      "url": null,
      "rowVersion": "AAAAAFFE3KA="
    }, {
      "menuItemId": 893321591,
      "menuDayId": 4807925,
      "foodItemId": 8724,
      "uomId": 179401,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Meat & Potatoes",
      "courseSortOrder": 3,
      "sortOrder": 0,
      "sourceSystemKey": "425982090",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": " Crisp Bacon Strips",
      "number": "53588",
      "description": "Crisp Bacon Strips",
      "planningGroupId": 26,
      "planningGroupDescription": "ENTREE-PORK",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 93,
      "foodSubCategoryDescription": "Main Dish",
      "foodSubCategorySortOrder": 7,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": false,
      "isMindful": false,
      "uomDescription": "2 Slices",
      "kcal": 87.24750000000000,
      "upc": "403000132465",
      "url": null,
      "rowVersion": "AAAAAFFE3Gs="
    }, {
      "menuItemId": 893321592,
      "menuDayId": 4807925,
      "foodItemId": 8724,
      "uomId": 179401,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Meat & Potatoes",
      "courseSortOrder": 3,
      "sortOrder": 0,
      "sourceSystemKey": "422816211",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": " Crisp Bacon Strips",
      "number": "53588",
      "description": "Crisp Bacon Strips",
      "planningGroupId": 26,
      "planningGroupDescription": "ENTREE-PORK",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 93,
      "foodSubCategoryDescription": "Main Dish",
      "foodSubCategorySortOrder": 7,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": false,
      "isMindful": false,
      "uomDescription": "2 Slices",
      "kcal": 87.24750000000000,
      "upc": "403000132465",
      "url": null,
      "rowVersion": "AAAAAFFE3Gw="
    }, {
      "menuItemId": 893321641,
      "menuDayId": 4807925,
      "foodItemId": 937,
      "uomId": 148985,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Eggs",
      "courseSortOrder": 2,
      "sortOrder": 0,
      "sourceSystemKey": "425982088",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Scrambled Eggs with Cheddar",
      "number": "3734",
      "description": "",
      "planningGroupId": 21,
      "planningGroupDescription": "ENTREE-EGGS",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 93,
      "foodSubCategoryDescription": "Main Dish",
      "foodSubCategorySortOrder": 7,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": true,
      "isMindful": false,
      "uomDescription": "4 oz Spoodle",
      "kcal": 247.60150000000000,
      "upc": "403000123395",
      "url": null,
      "rowVersion": "AAAAAFFE3J0="
    }, {
      "menuItemId": 893321642,
      "menuDayId": 4807925,
      "foodItemId": 937,
      "uomId": 148985,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Eggs",
      "courseSortOrder": 2,
      "sortOrder": 0,
      "sourceSystemKey": "422816209",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Scrambled Eggs with Cheddar",
      "number": "3734",
      "description": "",
      "planningGroupId": 21,
      "planningGroupDescription": "ENTREE-EGGS",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 93,
      "foodSubCategoryDescription": "Main Dish",
      "foodSubCategorySortOrder": 7,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": true,
      "isMindful": false,
      "uomDescription": "4 oz Spoodle",
      "kcal": 247.60150000000000,
      "upc": "403000123395",
      "url": null,
      "rowVersion": "AAAAAFFE3J4="
    }, {
      "menuItemId": 893321593,
      "menuDayId": 4807925,
      "foodItemId": 9036,
      "uomId": 159249,
      "startTime": "2019-06-07T06:00:00",
      "endTime": "2019-06-07T10:00:00",
      "meal": "Breakfast",
      "course": "Meat & Potatoes",
      "courseSortOrder": 3,
      "sortOrder": 1,
      "sourceSystemKey": "422816212",
      "isEverydayItem": false,
      "canBeOrdered": false,
      "formalName": "Sausage Link",
      "number": "36722",
      "description": "Three 1 oz sausage links",
      "planningGroupId": 26,
      "planningGroupDescription": "ENTREE-PORK",
      "photoId": null,
      "photo": null,
      "foodSubCategoryId": 93,
      "foodSubCategoryDescription": "Main Dish",
      "foodSubCategorySortOrder": 7,
      "foodMainCategoryId": null,
      "foodMainCategoryDescription": null,
      "foodMainCategorySortOrder": 0,
      "isFavorite": false,
      "isVegan": false,
      "isVegetarian": false,
      "isMindful": false,
      "uomDescription": "2 Links",
      "kcal": 118.41020000000000,
      "upc": "402000972927",
      "url": null,
      "rowVersion": "AAAAAFFE3G0="
    }

0 个答案:

没有答案