相关疑难解决方法(0)

使用cheerio自动提交查询(如JQuery)

我必须执行以下操作:给定从服务器加载的页面,我必须在加载后自动在该页面中提交表单,并使用相同的字符串(test worked)填充其所有输入字段.这显然是我的问题的简化,但它足够接近!

目前我正在获取表单,并使用https://github.com/cheeriojs/cheerio来探索它:

var URL = http://www.example.com/form/index.html"
// ...load the page ...
$ = cheerio.load( fetchedPageText );
Run Code Online (Sandbox Code Playgroud)

目前,我有以下代码:

var $ = cheerio.load( fetchedPageText );

var forms = $('form');
for( var i1 = 0, l1 = forms.length; i1 < l1; i1 ++ ){
  var form = forms[ i1 ];

  inputFields = $( 'input', form );


  console.log("******FORM ACTION: ", form.attribs.action );
  console.log("******FORM: ", form );

  for( var i2 = 0, l2 = inputFields.length; i2 < l2; i2 ++ …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery node.js cheerio

2
推荐指数
1
解决办法
4053
查看次数

Gitlab API 添加 SSH 密钥

我在通过 API 向我的 gitlab 服务器添加 SSH 密钥时遇到问题(它通过网页运行良好)。

Gitlab 信息: Gitlab 信息

我遇到了这个问题已在此处修复),它与“错误”的 openssh 实现有关。他们在里程碑 7.10 中修复了这个问题。唯一的事情......我的服务器安装了openssh 6.6:

OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

现在,我不知道该修复是否向后兼容,但也许值得一提。

此外,日志没有显示任何警告或错误或任何内容。/tmp/gitlab_key* 文件在服务器上生成: /tmp/gitlab_key* 的输出

我面临的问题是 gitlab无法通过 API创建指纹。这是我从 API 得到的回应:

{
    "message": {
        "fingerprint": ["cannot be generated"]
    }
}
Run Code Online (Sandbox Code Playgroud)

所以现在我不知道可能是什么问题。我已经为此苦苦挣扎了将近一个星期,所以我真的希望他的问题能够得到解决。

- 只是为了记录,这是我用来通过 API 添加 ssh 密钥的脚本

OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

ssh openssh gitlab

2
推荐指数
2
解决办法
3950
查看次数

Express 中的内容安全策略报告空对象

我的 Web 应用程序在后端使用 Node.js 和 Express。当违反内容安全策略 (CSP) 时,报告 URI 报告空对象。我的后台代码如下:

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(helmet({
  contentSecurityPolicy: {
    directives: {
      // some policies here
      reportUri: ["/my_amazing_csp_report_parser"],
    },
  },
}));

app.use('/my_amazing_csp_report_parser', (req, res, next) => {
  console.log(req.body);
  next();
})
Run Code Online (Sandbox Code Playgroud)

我在MDN 的文档中读到,报告 URI 应报告整个 JSON 对象。但我的console.log(req.body);返回一个空对象。我想知道我用app.use(bodyParser.urlencoded({ extended: true }));and解析 JSON 对象是否错误app.use(bodyParser.json());

express content-security-policy

2
推荐指数
1
解决办法
814
查看次数

使用Chai-HTTP进行POST时,似乎有错误的内容类型

我希望利用Chai-HTTP进行一些测试.当然,我想测试的不仅仅是我的GET,但是在尝试发布POST时,我似乎遇到了一个主要障碍.

为了弄清楚为什么我的POST不起作用,我开始在POST测试服务器上点击它们.

这是一个使用完全不同的工具链(Jasmine-Node和Frisby)进行测试的POST尝试(可以正常工作):

frisby.create('LOGIN')
  .post('http://posttestserver.com/post.php', {
    grant_type:'password',
    username:'helllo@world.com',
    password:'password'
  })
  .addHeader("Token", "text/plain")
  .expectStatus(200)
  })
.toss();
Run Code Online (Sandbox Code Playgroud)

结果如下:

Time: Mon, 27 Jun 16 13:40:54 -0700
Source ip: 204.191.154.66

Headers (Some may be inserted by server)
REQUEST_URI = /post.php
QUERY_STRING = 
REQUEST_METHOD = POST
GATEWAY_INTERFACE = CGI/1.1
REMOTE_PORT = 19216
REMOTE_ADDR = 204.191.154.66
HTTP_CONNECTION = close
CONTENT_LENGTH = 64
HTTP_HOST = posttestserver.com
HTTP_TOKEN = text/plain
CONTENT_TYPE = application/x-www-form-urlencoded
UNIQUE_ID = V3GPVkBaMGUAAB1Uf04AAAAc
REQUEST_TIME_FLOAT = 1467060054.9575
REQUEST_TIME = 1467060054

Post Params:
key: 'grant_type' value: 'password' …
Run Code Online (Sandbox Code Playgroud)

javascript rest json node.js chai

1
推荐指数
1
解决办法
1647
查看次数

NodeJS 和 EJS POST

我正在使用 NodeJS/Express 和 EJS 创建一个表单到 API 路由。当我尝试 POST 请求并调用 req.body.password & req.body.confirm 时,我得到“未定义”。

索引.js

import http from 'http';
import express from 'express';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import passport from 'passport';
const LocalStrategy = require('passport-local').Strategy;
var flash = require('connect-flash');

import config from './config';
import routes from './routes';

let app = express();
app.server = http.createServer(app);

//middleware
app.use(bodyParser.json({
  limit: config.bodyLimit
}));

//EJS VIEWS CODE
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(flash());
Run Code Online (Sandbox Code Playgroud)

我的控制器的一部分,带进口

import mongoose from 'mongoose';
import { …
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

1
推荐指数
1
解决办法
7750
查看次数