javascript - NWJS 中的跨域源安全

标签 javascript node.js cross-domain nwjs

我正在尝试连接到我的 ISP 调制解调器以获取一些隐藏数据,因此我创建了一个 html 页面,其中包含一些 javascript 。我使用 xmlhttprequest 登录该页面,它可以工作,但我无法获取 cookie,而该 cookie 是发出我的请求并获取这些隐藏数据所必需的。 我读到使用 NWJS 我可以绕过 CORS 限制...但我不知道我做错了什么... 我实际上使用的是最新的 SDK NWJS 0.22.1

这是我的 package.json:

{
 "main": "index.html",
 "name": "Liveboxinfos",
 "description": "test app",
 "version": "1.0.0",
 "nodejs": true,
 "node-remote": "http://192.168.1.1/*",
 "permissions": ["*://*/*"],
 "chromium-args": "--disable-web-security --user-data-dir",
 "window": {
 "title": "node-webkit demo",
 "icon": "link.png",
 "toolbar": true,
 "frame": true,
 "width": 1200,
 "height": 600,
 "position": "center",
 "min_width": 600,
 "min_height": 400,
 "max_width": 1200,
 "max_height": 600
 }
}

这是我的index.html 的javascript 部分:

var ip = "192.168.1.1";
var password = "password";

var HTTP = new XMLHttpRequest();
var url = "http://" + ip;
var params = '{"service":"sah.Device.Information","method":"createContext","parameters":{"applicationName":"so_sdkut","username":"admin","password":"' + password + '"}}';

HTTP.open("POST", url, false);
HTTP.setRequestHeader("Content-Type", "application/x-sah-ws-4-call+json");
HTTP.setRequestHeader("Authorization", "X-Sah-Login");
HTTP.withCredentials = true;
HTTP.onreadystatechange = function() {//Call a function when the state changes.
    if(HTTP.readyState == 4 && HTTP.status == 200) {
        //alert(HTTP.responseText);
    }
}

HTTP.send(params);

const regex = /contextID":"(.*?)"/;
const Received = HTTP.responseText;
const cookie = HTTP.getResponseHeader("set-cookie");

这是我的测试应用程序,您可以看到 cookie = null... application nwjs test

最佳答案

这不是 CORS。基本上,您无法使用 XHR 从另一个域获取 cookie。

使用NWJS,您可以简单地使用http.request/http.get来获取cookie。

@参见https://nodejs.org/api/http.html

关于javascript - NWJS 中的跨域源安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43819338/

相关文章:

javascript - 单击 Angular 9 中页面的其他位置时隐藏通知

node.js - gulp/gulp-nodemon - Nodemon 永远不会启动

node.js - gulp nodemon + Node = 错误 : listen EADDRINUSE

javascript - 解析javascript for循环,创建多个不重复的对象

javascript - 为什么 CORS 允许向任何服务器发送数据?

javascript - <ENTER> 在网页上如何工作?

javascript - (Node js) 如何向特定用户发送通知?

JavaScript,获取具有 id 名称的 td 的值

Ajax(jQuery)跨域输出——

javascript - 即使正确设置了 document.domain,跨子域 ajax 请求也被拒绝