获取URL#片段XMLHttpRequest
Get URL # fragment XMLHttpRequest
我正在构建一个chrome扩展,允许用户选择Facebook帖子并将其发送到服务器。
我有一个XMLHTTPRequest,我正在发送到Facebook,以便接收如下访问令牌:
function GetToken() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID_HERE&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token");
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
xxxxxxxxxxxxxxxxxx
xhr.close;
}
}
}
发送到服务器的XMLhttpRequest是成功的,我确实收到了一个访问令牌作为响应,但我不知道如何访问它
如果我在chrome上打开控制台窗口并选择网络选项卡,我可以看到正在发送的请求和正在接收的响应(使用访问令牌),但它是作为URL片段接收的,我不知道如何访问它。
GetToken函数在内容脚本中执行(如果有区别的话)。
编辑:
xhr.responseText如下
成功
安全警告:请像对待您的密码一样对待上面的URL,不要与任何人共享。setTimeout(function(){window.history.replaceState&&window.histry.replaceState({},","blank.html#=");},500);
xhr.responseXML如下
空
我已经解决了这个问题,您无法访问xmlhttprequest响应的URL片段。
因此,我所做的是,当我的扩展按钮被点击时,会打开一个带有以下URL的新选项卡,然后立即执行一个内容脚本,以便在删除之前获得URL片段。
chrome.browserAction.onClicked.addListener(function(tab) {
var Token_url = "https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID_HERE&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token";
chrome.tabs.create({ "url": Token_url, "index": tab.tabId });
chrome.tabs.executeScript(tab.tabId, { file: 'FbToken.js', runAt: 'document_start' });
});
FbToken.js是一个简单的文件,包含:
var AccessToken = window.location.hash;
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "AccessToken")
sendResponse({ Token: AccessToken });
});
你能发布你的响应,执行console.log(xhr.response,xhr.reresponseText)并将其发布在这里(用一些伪数据进行相应修改)吗?我认为你需要操纵一些字符串来获得你需要的值。
相关文章:
- XMLHttpRequest未返回值-状态202
- XMLHttpRequest在移动设备上的chrome上不起作用
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 检查xmlhttprequest问题的消息
- 主线程上的同步XMLHttpRequest已弃用
- 如何定期发出xmlhttprequest
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 上传带有XMLHttprequest的文件-多部分/表单数据中缺少边界
- 对象#<XMLHttpRequest>没有方法'完成'
- 在XMLHttpRequest之后重新初始化jQuery
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- Javascript XMLHttpRequest——只有第一个POST请求有效
- XMLHttpRequest - difference between Chrome & Firefox
- IE上的新XMLHttpRequest()出现JS Ajax未指定错误
- 非常简单的XMLHttpRequest不起作用
- 如何使用XMLHttpRequest下载文件
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- XMLHttpRequest.open()AJAX中的参数url
- XMLHTTPRequest脚本中没有internet连接和超时
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作