我开发了一个内部谷歌Chrome浏览器插件,它将提取页面的HTML并通过表单发布到服务器端页面。
从最新的Chrome版本(56.0.2924.87)开始,插件停止运行。通过Google开发人员工具查看网络信息时(右键单击 - >检查弹出窗口)。我看到事件被取消了。
通过搜索Google,我找到了Google事件日志。虽然我无法完全理解这些信息,但我看到了以下数据
我注意到的一件事是它说" MAIN_FRAME_DEPRECATED"在" load_flags"部分。我无法在Google上找到有关此内容的任何信息。
这是提交表单的插件中的代码。
d = document;
var f = d.createElement('form');
f.action = 'https://***.com/index.cfm?***';
f.method = 'post';
var i = d.createElement('input');
i.type = 'hidden';
i.name = 'Filecontent';
i.value = request.source;
f.appendChild(i);
d.body.appendChild(f);
f.submit();
Google有否取消表单帖子?我最初通过服务器端页面做了一些调试,我可以确认数据正在提交。
答案 0 :(得分:0)
感谢wOxxOm,我找到了正确的答案。我将上面的表单帖子切换为XMLhttprequest。以下内容通过同步HTTP请求执行相同的功能。
var xmlhttp = new XMLHttpRequest();
var url ="https://***/index.cfm?***";
var params='Filecontent='+encodeURIComponent(request.source);
xmlhttp.open("POST",url,false);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(params);
d = document;
d.body.innerHTML = xmlhttp.responseText;
到目前为止,我发现切换到此代码的唯一警告是,下一页上的所有URL都必须是绝对的。任何相对链接都不会运行corect。这也适用于使用//
而非https://
或http://
的链接。