Обзор
Недавно я пытался использовать NodeJS для имитации POST-запросов калитки.
То есть, загрузив форму на текущей веб-странице (скажем, site 1 ), я хочу, чтобы nodeJS отправил данные формы на другой сайт (скажем, site 2 ), созданный с использованием wicket, и верните HTML-текст site 2 на сервер site 1 (то есть nodeJS)
Ресурс
Сайт 2 , который я использую для тестирования от github:
https://github.com/bitstorm/Wicket-tutorial-examples/tree/wicket-6.x
Обратите внимание, что калитка 6.x (на самом деле я хочу 6.12.0) используется.
На моем компьютере он работает на localhost:8080
HTML у меня есть:
<body ng-app="App" ng-controller="Controller">
username: <input type='text' ng-model="User.name"><br>
password: <input type='text' ng-model="User.pass"><br>
<button ng-click="login(User)">Submit</button>
</body>
AngularJS у меня есть:
var commodity_app = angular.module('App', []);
commodity_app.controller('Controller', function($scope, $http, $window){
$scope.User = {name: "", pass: ""};
$scope.login = function(User){
$http.post("/login", User).then(function(response){
alert(response.body);
}, function(response){
alert("Error");
});
};
});
Вопрос
Это часть NodeJS, которую я хочу, чтобы она имитировала POST для калитки и возвращала тело html, которое калитка перенаправляет на:
var express = require('express');
var request = require('request');
var router = express.Router();
router.post("/login", function(req, res){
console.log(req.body);
var url = 'http://localhost:8080/wicket/bookmarkable/org.wicketTutorial.SignInPage?-1.IFormSubmitListener-form';
var bodyString = "form1_hf_0=&username=wicketer&password=wicketer";
var forms = {"form1_hf_0": '',"username": "wicketer", "password" : 'wicketer'}
var header = {"Content-Length": "47",
"Content-Type": "application/x-www-form-urlencoded",
}
request.post({url:url, followAllRedirects: true, form: bodyString, headers: header}, function(error, response, body){
console.log(response.statusCode);
console.log(response.body);
res.send({msg: ""});
});
});
module.exports = router;
Я пытался отправить данные, используя body
, form
, formData
, но это не работает.
Может кто-нибудь помочь мне решить эту проблему?