Javascript reflight的响应具有无效的HTTP状态代码500

Javascript reflight的响应具有无效的HTTP状态代码500,javascript,jquery,html,ajax,yelp,Javascript,Jquery,Html,Ajax,Yelp,我试图对YelpFusion API进行一个简单的ajax调用。我使用Yelp提供的client_id和client_secret在Postman中进行“POST”调用,并根据Yelp API文档接收访问令牌。此访问令牌可用于验证api调用。在获得访问令牌后,我使用Postman对/business/search端点进行“GET”调用,并获取相关的业务信息。下图显示了进行调用所需的相应标题和参数: 在Postman中点击“SEND”后,JSON响应代码将显示在Postman(前一张图片的底部)

我试图对YelpFusion API进行一个简单的ajax调用。我使用Yelp提供的client_id和client_secret在Postman中进行“POST”调用,并根据Yelp API文档接收访问令牌。此访问令牌可用于验证api调用。在获得访问令牌后,我使用Postman对/business/search端点进行“GET”调用,并获取相关的业务信息。下图显示了进行调用所需的相应标题和参数:

在Postman中点击“SEND”后,JSON响应代码将显示在Postman(前一张图片的底部)中,这是我正在寻找的结果。Postman还具有生成调用所需代码的功能,我将生成的ajax请求插入到我的程序中:

var settings = {
    "async": true,
    "crossDomain": true,
    "url": "https://api.yelp.com/v3/businesses/search?term=delis&latitude=37.786882&longitude=-122.399972",
    "method": "GET",
    "headers": {
        "authorization": "Bearer 0P*****************x",
        "cache-control": "no-cache",
        "postman-token": "30*************7"
    },
    "data": {
        "grant_type": "client_credientials",
        "client_secret": "tp***************m",
        "client_id": "RO**********w"
    }
}

$.ajax(settings).done(function (response) {
   console.log(response);
});

现在,当在我的页面上单击submit按钮时,我希望在控制台中显示响应。然而,尽管Postman似乎能够正确地进行ajax调用并收到正确的响应,但Google chrome浏览器显示以下错误:。据我所知,第一个错误发生在飞行前请求中,当时OPTIONS方法向资源发出HTTP请求,以确定实际请求是否可以安全发送。然而,我很困惑邮递员如何能够毫无问题地拨打电话,但谷歌浏览器却不能。感谢您的帮助

这是一个典型的CORS场景

飞行前请求是浏览器发出的HTTP请求,用于跨域调用,以检查您的域是否具有正确的“权限”,以确定实际请求是否可以安全发送

飞行前请求会仔细检查服务器是否设置了某些标头:例如

"Access-Control-Allow-Origin": "*" 
"Access-Control-Allow-Methods": "GET, POST"
"Access-Control-Allow-Headers: "X-Custom-Header"
它基本上指定了被授予访问权限的域列表、允许方法(get、put、post等)和允许头。 您不会在Postman中看到此错误,因为它不会向服务器发出任何飞行前请求,它只是绕过了任何与CORS相关的问题

由于您无法控制Yelp Fusion API后端,因此可以创建一个简单的后端来发出请求()