Yelp Fusion API是Yelp提供的商业数据接口,允许开发者访问Yelp的商业目录和评价数据。JSONP(JSON with Padding)是一种跨域数据请求的技术,通过动态创建<script>
标签来绕过浏览器的同源策略限制。
callback
或jsonp
参数传递。推荐使用现代fetch API或axios进行CORS请求:
fetch('https://api.yelp.com/v3/businesses/search?location=San+Francisco', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
如果必须使用JSONP,确保请求格式正确:
function handleResponse(data) {
console.log(data);
}
const script = document.createElement('script');
script.src = 'https://api.yelp.com/v3/businesses/search?location=San+Francisco&callback=handleResponse';
document.body.appendChild(script);
检查Yelp Fusion API最新文档,确认是否仍支持JSONP。现代API通常推荐使用OAuth 2.0和CORS。
如果遇到跨域问题,可以设置服务器端代理:
// Node.js Express示例
const express = require('express');
const axios = require('axios');
const app = express();
app.get('/api/yelp-proxy', async (req, res) => {
try {
const response = await axios.get('https://api.yelp.com/v3/businesses/search', {
params: req.query,
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
res.json(response.data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
app.listen(3000);
如果问题仍然存在,建议查阅Yelp Fusion API的最新文档或联系其技术支持获取具体错误信息。
没有搜到相关的文章