Javascript Chrome检测到未被拒绝的令牌“:&引用;即使它不是';不在那里
我尝试使用以下jQuery代码从google distancematrix API获取JSON数据:Javascript Chrome检测到未被拒绝的令牌“:&引用;即使它不是';不在那里,javascript,jquery,json,google-chrome,Javascript,Jquery,Json,Google Chrome,我尝试使用以下jQuery代码从google distancematrix API获取JSON数据: <script type="text/javascript"> $(document).ready(function(){ url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinatio
<script type="text/javascript">
$(document).ready(function(){
url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=AIzaSyC1YPi3w46cOyrkUa8s0vR9QHzeoQCoum4";
$.ajax({
type: "GET",
url: url,
dataType: "json",
jsonpCallback: "results"
})
function results(data) {
console.log("data" + data);
}
});
</script>
$(文档).ready(函数(){
url=”https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC和目的地=纽约+纽约+城市,纽约和基=Aizasyc1ypi3w46coyrkua8s0vr9qhzeoqoum4”;
$.ajax({
键入:“获取”,
url:url,
数据类型:“json”,
jsonpCallback:“结果”
})
功能结果(数据){
控制台日志(“数据”+数据);
}
});
如果我查看浏览器(Google Chrome)的控制台,我会收到以下错误消息:
未捕获的语法错误:意外标记:
如果我点击这个JSON文件,我会得到“无需预览”
编辑:
我在“我的网络”选项卡中看到此答复:
奇怪的是,正确的JSON响应被发送到我的浏览器:
这是一场鬼鬼祟祟的比赛,我确实花了几位客人的时间:
//Change this:
dataType: "jsonp",
// to this:
dataType: "json",
可能是相关的我是如何找到它的,以便下次您可以执行(我在控制台中执行了所有这些操作,但在脚本/文件中也可以):
- 首先,我只是输入了url->没有错误,所以没有奇怪的url,或其他时髦的东西
- 然后只需
函数->仍然没有错误。现在我们知道它在ajax调用中结果
- 在我的编辑器中输入ajax函数,如下所示:
- 首先,所有这些->我得到了错误
- 现在只需使用类型和URL->无错误的AJAX函数
- 在->错误中重新添加了数据类型
- 删除数据类型并添加回调->无错误
- 现在我们知道它一定是数据类型行
- 把那句话抄写给我的编辑,并把字体放大到巨大
- 所有的角色看起来都很好,没有古怪的引语
- 手动重新键入整行内容(无副本/过去),并尝试->错误
- 现在我们知道要么是不正确的键,要么是不正确的值
- 打开文档,查看如何拼写(大写字母T,当然?->正确
- 打开文档,查看正确的值->等待,没有JSONP
- 更改代码,“jsonp”->“json”->工作代码李>
所以jquery在内部为您做了这件事。我认为您最终还是会遇到CORS问题。我建议使用谷歌API的文档以不同的方式进行处理。它相当简单,为您提供了更多的选择,效果更好:
(函数($){
函数init(){
var origin=‘英格兰格林威治’;
var目的地=‘瑞典斯德哥尔摩’;
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
来源:[来源],
目的地:[目的地],
travelMode:“驾驶”
},回调);
函数回调(响应、状态){
//有关详细信息,请参见分析结果
//回调函数的基础知识。
控制台日志(响应);
}
};
$(窗口).ready(函数(){
init();
});
})(jQuery)代码>
请使用控制台.log(“数据:”,数据)代码>并查看它记录了什么?警报可能只显示[object object],您确定这不是触发错误的响应吗?你确定要发回格式正确的JSON?在您的网络选项卡中,响应是什么样子的?它是否会触发?您将得到一个JSON
响应,因为端点没有返回JSONP
。在URL中,端点也在查询参数之前指定为json
。我怀疑你能用JSONP
(谷歌不会返回)这个练习是为了一个讲座,禁止使用谷歌库来处理JSON数据(我不明白为什么,但它是这样的)。谷歌不会随意用JSONP
响应JSON
请求(见端点:)。你可以试着强迫这个反应,你会得到一个反应(200),但你不能用它做任何事情。这里有各种各样的解决方案,但您的方法始终会遇到CORS。我讨厌毫无意义的课堂练习。你能给我看看你的全部html代码吗?我编辑了我的问题,也许这些额外的信息对你有帮助。我使用了你的js,只是把它复制到了我的控制台上。我只改变了P,就是这样。然后我得到一个回复,上面写着“unvailid token”,然后你会得到和我一样的错误。Google Chrome似乎不知道如何解释json数据,并将:
检测为无效令牌。你知道怎么解决这个问题吗?我怀疑数据不正确,如果是这样的话,所有的恐慌都会消失。如果这不能解决它,我不知道。taht为我工作你刚才说你得到了错误无效的令牌
,那么如果你得到了错误,它是如何为你修复的呢?