Мне трудно добавить метод PATCH в MockServer.
Я использую запрос curl ниже, и ожидание создается правильно.
Во время тестирования я получаю следующую ошибку.
Метод PATCH не разрешен Access-Control-Allow-Methods в предварительном ответе.
Я использую контейнер докера и запускаю его с помощью следующей команды.
docker run -p 1080:1080 jamesdbloom/mockserver
/opt/mockserver/run_mockserver.sh
-logLevel INFO -serverPort 1080
-genericJVMOptions '-Dmockserver.enableCORSForAllResponses=false'
Я тоже пробовал
docker run -p 1080:1080 jamesdbloom/mockserver
/opt/mockserver/run_mockserver.sh
-logLevel INFO -serverPort 1080
-genericJVMOptions '-Dmockserver.enableCORSForAllResponses=true
curl -v -X PUT "http://localhost:1080/expectation" -d '{
"httpRequest": {
"method": "PATCH",
"path": "/settings",
"headers": {
"Host": [".*"],
"Connection": ["keep-alive"],
"Origin": [".*"],
"User-Agent": [".*"],
"Access-Control-Request-Method": ["PATCH"],
"access-control-request-headers": ["access-control-allow-origin,content-type"],
"Accept.*": [".*"],
"content-length": [".*"]
},
"body": {
"type": "PARAMETERS",
"parameters":
{
"email": ["[email protected]"],
"name": ["User Name"],
"password": ["supersecret"],
"password_confirmation": ["supersecret"],
"username": ["emanresu"]
}
}
},
"httpResponse": {
"statusCode": 200,
"headers": {
"Content-Type": ["application/json"],
"Server": ["nginx/1.13.12"],
"Access-Control-Allow-Origin": ["*"],
"Access-Control-Allow-Methods" : ["GET, HEAD, OPTIONS, POST, PUT, PATCH"],
"Access-Control-Allow-Headers" : ["Access-Control-Allow-Origin, Authorization, Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Allow-Methods, Access-Control-Request-Method, Access-Control-Request-Headers"],
"Access-Control-Expose-Headers": ["Access-Control-Allow-Origin, Authorization, Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Allow-Methods, Access-Control-Request-Method, Access-Control-Request-Headers"],
"Access-Control-Max-Age": ["300"],
"connection": ["close"]
},
"body": "{\"status\":\"success\"}"
}
}'
Ваш комментарий был для меня загадочным, пока я не прочитал здесь ваш ответ stackoverflow.com/questions/43871637/…, который был по-разному поучительным. Спасибо.





Ошибка, указанная в вопросе, относится к ответу на запрос OPTIONS. Итак, чтобы протестировать с помощью curl, вам нужно сначала заставить curl отправлять запрос OPTIONS. Поэтому вам необходимо убедиться, что ваш сервер отправляет правильные заголовки в ответах на запросы OPTIONS, а не только в ответах на запросы PATCH.