Google News API gives an error Uncaught SyntaxError: Unexpected token ')'
Google News API gives an error Uncaught SyntaxError: Unexpected token ')'
最初我写了一些这样的代码:
var val="MSFT";
$.get('https://www.google.com/finance/company_news?q='+val+'&output=rss',
function (data) {
console.log(data);
});
并且该代码在本地运行良好。但是当我试图从 GitHub 调用这个相同的函数时,它给我一个关于 CORS 的错误。
所以,我正在尝试使用以下客户端代码:
var nws_lbl = "MSFT";
var news_url = 'https://www.google.com/finance/company_news?q='+nws_lbl+'&output=rss&callback=? ';
$.ajax({
url: news_url,
data: {
format: 'json'
},
error: function () {
console.log("Error while getting data");
},
dataType: 'jsonp',
success: function (data) {
console.log(data);
}
});
但是我收到以下错误:
在网络中我得到 200,这意味着响应是正确的。
总是会出错。不知道我错过了什么。有人可以帮忙吗?
您可以通过 CORS proxy 发出请求来绕过 CORS 限制,如下所示:
var val="MSFT",
proxyUrl = 'https://cors-anywhere.herokuapp.com/',
targetUrl = 'https://www.google.com/finance/company_news?q='+val+'&output=rss';
$.get(proxyUrl + targetUrl,
function (data) {
console.log(data);
});
代理向 targetUrl
发出请求,获取响应,添加 Access-Control-Allow-Origin
响应 header 和任何其他所需的 CORS header,然后将其传回到您的请求代码。添加 Access-Control-Allow-Origin
header 的响应是浏览器看到的内容,因此浏览器允许您的前端代码实际访问响应。
至于问题中的第二个代码片段,我认为它对您不起作用的原因是 https://www.google.com/finance/company_news
没有任何方法可以 return JSONP。所以 format
和 callback
参数似乎没有引起你想要的结果,而是引起了一些 non-JSONP 响应,你的代码无法解析它,因为它不是预期的格式。
最初我写了一些这样的代码:
var val="MSFT";
$.get('https://www.google.com/finance/company_news?q='+val+'&output=rss',
function (data) {
console.log(data);
});
并且该代码在本地运行良好。但是当我试图从 GitHub 调用这个相同的函数时,它给我一个关于 CORS 的错误。
所以,我正在尝试使用以下客户端代码:
var nws_lbl = "MSFT";
var news_url = 'https://www.google.com/finance/company_news?q='+nws_lbl+'&output=rss&callback=? ';
$.ajax({
url: news_url,
data: {
format: 'json'
},
error: function () {
console.log("Error while getting data");
},
dataType: 'jsonp',
success: function (data) {
console.log(data);
}
});
但是我收到以下错误:
在网络中我得到 200,这意味着响应是正确的。
总是会出错。不知道我错过了什么。有人可以帮忙吗?
您可以通过 CORS proxy 发出请求来绕过 CORS 限制,如下所示:
var val="MSFT",
proxyUrl = 'https://cors-anywhere.herokuapp.com/',
targetUrl = 'https://www.google.com/finance/company_news?q='+val+'&output=rss';
$.get(proxyUrl + targetUrl,
function (data) {
console.log(data);
});
代理向 targetUrl
发出请求,获取响应,添加 Access-Control-Allow-Origin
响应 header 和任何其他所需的 CORS header,然后将其传回到您的请求代码。添加 Access-Control-Allow-Origin
header 的响应是浏览器看到的内容,因此浏览器允许您的前端代码实际访问响应。
至于问题中的第二个代码片段,我认为它对您不起作用的原因是 https://www.google.com/finance/company_news
没有任何方法可以 return JSONP。所以 format
和 callback
参数似乎没有引起你想要的结果,而是引起了一些 non-JSONP 响应,你的代码无法解析它,因为它不是预期的格式。