在chrome.tabs.query中出现输入结束错误
Unexpected end of input error with chrome.tabs.query
我一直在努力解决这个问题,没有运气。我已经包含了错误和问题块周围的大部分上下文。
var successURL = 'https://www.facebook.com/connect/login_success.html';
var userFirstName = ''
var userEmail = ''
function onFacebookLogin(){
if (localStorage.getItem('accessToken')) {
chrome.tabs.query({}, function(tabs) {
for (var i = 0; i < tabs.length; i++) {
if (tabs[i].url.indexOf(successURL) !== -1) {
var params = tabs[i].url.split('#')[1];
var accessToken = params.split('&')[0];
accessToken = accessToken.split('=')[1];
localStorage.setItem('accessToken', accessToken);
chrome.tabs.remove(tabs[i].id);
console.log(accessToken);
pullSecurityToken();
findFacebookName();
}
}
});
}
}
chrome.tabs.onUpdated.addListener(onFacebookLogin);
function pullSecurityToken(){
var pointUrl = "localhost:3000/api/v1/retrieve_token_for/" + localStorage.accessToken + "/" + localStorage.securityToken;
var xhr = new XMLHttpRequest();
xhr.open("GET", pointUrl, true);
alert(JSON.parse(xhr.responseText));
}
var response = ''
function findFacebookName(){
if (localStorage.accessToken) {
var graphUrl = "https://graph.facebook.com/me?access_token=" + localStorage.accessToken;
console.log(graphUrl);
var xhr = new XMLHttpRequest();
xhr.open("GET", graphUrl, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if(xhr.status == '401'){
alert("Security Token Invalid, please check and try again.");
}
response = JSON.parse(xhr.responseText);
userFirstName = response.first_name
userEmail = response.email
console.log(response);
}
}
}
xhr.send();
}
错误如下:
Error in response to tabs.query: SyntaxError: Unexpected end of input
at onFacebookLogin (chrome-extension://dapeikoncjikfbmjnpfhemaifpmmgibg/background.js:7:17)
即使使用同步请求,仍然需要对其进行send
。所以在pullSecurityToken
里面的xhr.open
后面加一个xhr.send();
正如Felix Kling在评论中指出的那样,缺少send
将直接导致您的错误,因为responseText
属性仍然是一个空字符串,这样的字符串不是有效的JSON,而""
将是有效的JSON。
相关文章:
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- jQuery Ajax+经典ASP返回错误'意外的输入结束'
- `同构的fetch`response.json()方法总是抛出意外的输入结束错误
- js文件的第1行出现意外的输入结束错误
- 意外的输入结束 - 快速/节点应用程序上的 curl JSON
- 带有 JavaScript 异常的 ajax:意外的输入结束
- 运行 AJAX 异步时文档类型标记的“意外输入结束”,但在同步时则不然
- SyntaxError:意外的输入结束(nodejs-tcp服务器)
- jQuery AJAX:意外的输入结束
- Nodejs-Mysql:"SyntaxError:意外的输入结束“;如果查询包含'其中'
- Jquery/Javascript未捕获语法错误:意外的输入结束
- "意外的输入结束“;在javascript程序中
- 在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
- 在chrome.tabs.query中出现输入结束错误
- 输入结束不正常"Javascript注册/登录系统
- SyntaxError:输入结束时没有预料到(可能缺少大括号)
- 无法第二次读取json文件:"输入结束错误"
- 倒计时计数器,用户可以在其中输入结束日期
- "意外的输入结束“;从简单POST请求到node.js的响应消息
- JSON.解析localStorage输入结束错误