【发布时间】:2020-11-12 13:34:23
【问题描述】:
我已经尝试了我在这里找到的标题问题的解决方案,例如beforeSend 并检查 ajax 的版本。我基本上有一个electron 应用程序,里面有一个webview,这个webview 与一个ipc 脚本通信,这个ipc 脚本将jquery 添加到访问的页面,然后它执行一个ajax要求。我在前端使用Vue。
问题是,它没有发送我提出的自定义请求。虽然,它以前是 100% 工作的。我真的不记得是什么原因造成的。
我的电子应用的主要index.js
mainWindow = new BrowserWindow({
height: 850,
useContentSize: true,
width: 1550,
webPreferences: {
webSecurity: false,
nodeIntegration: true,
webviewTag: true
}
})
webview
<webview :id="webview.key" :src="webview.url" :preload="fullpath + `\\serverBrowserIPC.js`" style="height: 100%" pcontextIsolation></webview>
ipc.js 文件
const {
ipcRenderer
} = require('electron');
const _ = require("lodash")
const myajaxfile = require("./myajaxfile.js")
window.onload = function() {
var script = document.createElement("script");
script.src = "https://code.jquery.com/jquery-3.5.1.min.js";
script.onload = script.onreadystatechange = function() {
};
document.body.appendChild(script);
// var script2 = document.createElement("script");
// script2.src = "https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js";
// script2.onload = script2.onreadystatechange = function() {
// };
// document.body.appendChild(script2);
};
ipcRenderer.on("get_item", function(event, payload) {
myajaxfile.sendRequest()
});
myajaxfile.js ajax 部分(基本模板):
let stream_ajax = $.ajax({
method: "GET",
url: `https://example.com/ajaxCenter?_action=getserver}`,
headers: {
"Access-Control-Allow-Origin": "true",
'accept': '*/*',
'X-Requested-With': 'XMLHttpRequest',
'x-csrf-token': csrf_token
},
complete(response, status) {
if (status === "success") {
} else {
}
}
});
没有发送任何标头。以前,它运行良好,没有任何问题。非常感谢任何帮助,这个问题正在停止我的整个项目。
我已经上传了一个项目示例,可以在here下载。使用npm install 安装软件包,然后使用npm run watch 运行electron 应用程序。运行后请点击connect按钮,在控制台查看网络标签。
项目中提供的请求只有在标头中发送csrf-token时才有效,否则会导致重定向。以前,它可以正常工作。
【问题讨论】:
-
你检查过网络请求了吗?浏览器是否发送了标头?也许这只是一个缓存问题?
-
我做了,浏览器不发送任何标题。甚至没有
accept或其他任何东西。 -
@Jaeger 实际上正在发送标头,您可以在 CLI 控制台(不是电子 chrome 控制台)上看到,请参见此处的屏幕截图:prntscr.com/trzx0e 也在源代码中zip文件中的代码,没有
ipc.js文件,也没有任何<webview>组件。 -
为了简单起见,我没有包含这些文件。项目本身有很多不需要的文件。我也在控制台中看到了这个,但在电子铬控制台中停止了显示。
标签: javascript jquery ajax electron