0

隠しデータを取得するために ISP モデムに接続しようとしているので、内部に JavaScript を含む HTML ページを作成しました。私は xmlhttprequest を使用してページにログインしますが、機能しますが、リクエストを作成してそれらの非表示のデータを取得するために必須の 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 であることがわかります... アプリケーション nwjs テスト

4

1 に答える 1

1

それはCORSではありません。基本的に、XHR を使用して別のドメインから Cookie を取得することはできません。

NWJS では、http.request/http.get を使用して Cookie を取得できます。

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

于 2017-05-06T11:18:04.180 に答える