gpt4 book ai didi

javascript - azure function app javascript无法读取Post请求的正文

转载 作者:行者123 更新时间:2023-12-02 07:27:26 24 4
gpt4 key购买 nike

我正在使用 Azure Function App 来部署此示例代码:

FUNCTIONS_EXTENSION_VERSION=测试版

WEBSITE_NODE_DEFAULT_VERSION=6.5.0

index.js:

module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');

if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello " + (req.query.name || req.body.name)
};
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
context.done(); };

函数.json:

 {"disabled": false, "bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
}]}

在本地开发中,一切正常。

部署后,请求 POST 的正文为“未定义”

调用该函数的简单请求:- 内容类型:application/json

{
"name":"John"
}

日志:

{ method: 'POST',
url: '/api/MyHttpTrigger',
originalUrl: '/api/MyHttpTrigger',
headers:
{ connection: 'close',
'transfer-encoding': 'chunked',
accept: 'application/json, text/plain, */*',
authorization: 'Bearer------',
expect: '100-continue',
host: 'dev-we-function-test-api.azurewebsites.net',
'max-forwards': '10',
'user-agent': 'axios/0.16.2',
'x-client-ip': '52.143.137.149',
'x-client-port': '16079',
'request-context': 'appId=cid-v1:5443f5a3-02cd-43d3-90d6-1942e07580a1,roleName=Web',
'request-id': '|rtHs1.ca2e9979_1310.',
'x-ms-request-id': 'rtHs1',
'x-ms-request-root-id': '|rtHs1.ca2e9979_1310.',
'x-waws-unencoded-url': '/api/MyHttpTrigger?code=NhpwrmvOjo809ryOvkzbbBa9B1/Hqj18FoVw9faqq8eKSaoDk4oyeg==',
'client-ip': '52.143.137.149:16079',
'is-service-tunneled': '0',
'x-arr-log-id': 'c2b5dbe9-4193-4b81-821a-8ad2054a1203',
'disguised-host': 'dev-we-function-test-api.azurewebsites.net',
'x-site-deployment-id': 'dev-we-function-test-api',
'was-default-hostname': 'dev-we-function-test-api.azurewebsites.net',
'x-original-url': '/api/MyHttpTrigger?code=NhpwrmvOjo809ryOvkzbbBa9B1/Hqj18FoVw9faqq8eKSaoDk4oyeg==',
'x-forwarded-for': '52.143.137.149:16079',
'x-arr-ssl': '2048|256|C=US, S=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT TLS CA 4|CN=*.azurewebsites.net',
'x-forwarded-proto': 'https' },
query:
{ code: 'NhpwrmvOjo809ryOvkzbbBa9B1/Hqj18FoVw9faqq8eKSaoDk4oyeg==' },
params: {},
body: undefined }

帮助....

最佳答案

在我这边重现错误。

已经做了一些测试来查明原因。

  • 在 Windows 应用服务计划中,有效。
  • 在 Linux 中,C#(csx) HttpTrigger 可以工作。
  • 尽管应用设置中的默认值为 6.5.0,但发现节点版本为 8.9.0。使用8.9.0在widows版本测试,也可以。

因此,对于Linux应用程序服务计划(预览版)中的js功能,从我的 Angular 来看,请求正文要么丢失,要么无法解析。这似乎是linux版本的语言支持问题,因为整个部署都是一个模板,并且没有关于不支持json数据作为请求体的提示。

更新

此问题似乎已解决,请在 Linux 的运行时 2.0.1.0(测试版)上进行测试。

关于javascript - azure function app javascript无法读取Post请求的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com