私はrestifyで問題が発生しました。私はAPIでgetメソッドしか使用できません。通常、CORSについては問題があるようですが、同じドメインでも使用できません。私は、ローカルホストで同じドメインで動作している間、多少試してみました。同じドメインからでもgetメソッドを受け入れて復元する
しかし、コードを少し修正しても機能しませんでした。また、私はPOST要求のreq.bodyまたはreq.paramsのパラメータを取得できないようです。プリフライトリクエストも使用していません。
'use strict';
var restify = require('restify'),
plugins = require('restify-plugins'),
config = require('./config.js'),
personController = require('./routes/person-controller')
var server = restify.createServer({
name: config.name,
version: config.version,
})
server.use(plugins.jsonBodyParser({ mapParams: true }))
server.use(plugins.acceptParser(server.acceptable))
server.use(plugins.queryParser({ mapParams: true }))
server.pre(restify.CORS({
origins: [
'*'
],
headers: [
"authorization",
"withcredentials",
"x-requested-with",
"x-forwarded-for",
"x-real-ip",
"x-customheader",
"user-agent",
"keep-alive",
"host",
"accept",
"connection",
"upgrade",
"content-type",
"dnt",
"if-modified-since",
"cache-control",
"Accept-Encoding",
"Accept-Language",
"User-Agent",
"Accept",
"DNT",
"Connection",
"Upgrade-Insecure-Requests",
"Cache-Control",
"Pragma",
"Content-Length",
"Content-Type",
"Accept-Type"
],
methods: ["GET", "POST", "PUT"]
})
)
server.use(plugins.fullResponse())
server.get("/api/values", personController.readAll);
server.get("/api/values/:id", personController.readOne);
server.post("/api/values/", personController.createPerson);
server.put("/api/values/", personController.updatePerson);
server.del("/api/values/", personController.delPerson);
server.on('uncaughtException', (req, res, route, err) => {
log.error(err.stack)
res.send(err)
});
server.listen(config.port, function() {
})
私はこのように解決したいと思いますが、私ができないのであれば、私はExpressに戻る必要があるかもしれません。
新しい情報: 今は私のFirefoxブラウザを使用すると完全に原油を使うことができます。私はノードアプリケーションをホストするためにサーバーを使用します。このサーバは、nginxを使用してubuntuサーバのディストリビューションを使用している仮想マシンです。しかし、jmeterで正確に同じリクエストを投稿すると、完全な機能にアクセスすることはできません。取得するだけです。ここでは、要求の異なるソースのように思える
Host: 192.168.131.128
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: sv-SE,sv;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0, no-cache
Content-Type: application/json
Content-Length: 174
Pragma: no-cache
は何とかサーバー上の別のCORS設定をトリガー火狐から働く要求があります。
投稿リクエストを投稿できますか?リクエストのコンテンツタイプに 'application/json'を設定しますか?ボディパーサは '.use'で復元できません。 – Gntem
Hey!あなたの早急な返信をありがとう。私はserver.use(plugins.fullResponse())をserver.pre(plugins.fullResponse())に変更しました。これは今、atymastと同じoriginで動作しますが、postmanでは動作しません。私は前にコンテンツタイプのアプリケーションを使用したことを知っていますが、今私はリクエストにパラメータを追加しました! –