我尝试向Yelp API发送POST请求以使用以下说明获取访问令牌:https://www.yelp.com/developers/documentation/v3/get_started
但是,下面的代码不会向控制台打印任何内容。我不确定问题是什么,或者我是否正确设置了POST请求。我的代码出了什么问题? :(
foodfinder.html:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="./public/foodfinder.js"></script>
<meta charset="UTF-8">
<title>Food Finder</title>
</head>
<body>
Hello world
</body>
</html>
foodfinder.js:
$(function () {
var API_HOST = "api.yelp.com";
var SEARCH_PATH = "/v3/businesses/search";
var BUSINESS_PATH = "/v3/businesses/";
var TOKEN_PATH = "/oauth2/token";
var GRANT_TYPE = "client_credentials";
var CLIENT_ID = "abc"; // dummy id for stackoverflow purposes
var CLIENT_SECRET = "xyz"; // dummy secret for stackoverflow purposes
var SEARCH_TERM = "food";
var SEARCH_RADIUS = 500; // radius is in meters
var SORT_BY = "distance";
$.ajax(API_HOST + TOKEN_PATH, {
type: "POST",
data: {
grant_type: GRANT_TYPE,
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET
},
contentType: "application/x-www-form-urlencoded",
dataType: "json",
success: function (data) {
console.log(data);
},
error: function () {
console.log("post call error");
}
})
});
答案 0 :(得分:0)
也许你需要HOST变量中的https,比如
var API_HOST = "https://api.yelp.com";
当我在没有https的情况下测试呼叫时,我收到一个错误:
{"error": {"description": "/oauth2/token", "code": "VALIDATION_ERROR"}}