【问题标题】:PUT requests not working on Server side (node js)PUT 请求在服务器端不起作用(节点 js)
【发布时间】:2018-09-17 14:55:16
【问题描述】:

我正在尝试在 Node JS 中发出 PUT 请求以更新“值”字段。这是我的代码:

var identityJson = {};
identityJson.identity = {};
identityJson.identity.value = "+61111111111";
var url = "https://[Zendeskdomain].zendesk.com/api/v2/users/[user ID]/identities/[Identity ID].json";
var request = new XMLHttpRequest();

    request.onreadystatechange = function() {
        if (this.readyState==4 )
        {
            console.log(this.status)
            console.log(this.responseText);
        }
    }

request.open('PUT', url, true);
request.setRequestHeader("Authorization", "Bearer " + token);
request.setRequestHeader('Content-type', 'application/json');
request.send(JSON.stringify(identityJson));

此脚本返回 200 作为状态并像以前一样打印身份。在这种情况下,该值仍然是“+37011111111”

200
{"identity":{"url":"https://[Zendeskdomain].zendesk.com/api/v2/users/[user ID]/identities/[Identity ID].json","id":[Identity ID],"user_id":[user ID],"type":"phone_number","value":"+37011111111","verified":true,"primary":true,"created_at":"2018-09-07T12:24:02Z","updated_at":"2018-09-07T12:24:02Z"}}

如果我在客户端发送相同的请求(将脚本放在一个简单的网页上),值会发生变化,因此输入的信息格式似乎正确。

任何人在从 Node JS 提交 PUT 请求时遇到过类似问题(无论是否在 Zendesk 中),并且可以指出正确的方向吗?

注意: [Zendeskdomain]、[user ID] 和 [Identity ID] 与此无关,因此我删除了它们,但它们已正确输入到脚本中。

谢谢!

【问题讨论】:

  • 如果您已经在服务器上,则不需要 PUT 请求的协议 (https)。您是否考虑过在没有协议包装器的情况下简单地进行函数调用?
  • 谢谢@RobertRowntree。我在自己的服务器中(基本上是从终端调用它)并向第三方服务器(Zendesk)发出这些调用,所以我不认为调用函数是一种选择

标签: node.js rest zendesk zendesk-api


【解决方案1】:

你在服务器端,不要使用 XMLHttpRequest,它是一个 javascript 客户端函数...

使用类似请求的包:https://www.npmjs.com/package/request

那就做吧:

request({
  method: "PUT",
  uri: "http://sdfsfdsdf",
  json: body
 }, function(err, response, body){
    ....
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2017-09-15
    • 2020-06-08
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多