首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nodejs xhr POST

nodejs xhr POST
EN

Stack Overflow用户
提问于 2016-05-03 02:38:07
回答 1查看 6.1K关注 0票数 3

我正在使用nodejs并尝试向服务器发出POST命令。我还使用节点-xmlHttpRequest(driverdan的模块)。我对内容类型有问题,并得到了错误:

代码语言:javascript
运行
复制
{
  "response":{
    "errorCode":"UNKNOWN_ERROR","message":"Content type 
    'text/plain;charset=UTF-8' not supported","detail":"Content type 
    'text/plain;charset=UTF-8' not supported"
  },"version":"1.0"
}

我需要内容类型是JSON,而不是文本。我已经用GET测试了代码,它运行得很好。

这是我的代码:

代码语言:javascript
运行
复制
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    var sys = require('util');
    var json_text2 = { "username": "admin","password": "-----" };
    var apicem_ip = "sandboxapic.cisco.com:9443";
    var apic_url = 'https://'+apicem_ip+'/api/v1/ticket';
    //- var xmlHTTP = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        sys.puts("State: " + this.readyState);

        if (this.readyState === 4) {
            sys.puts("Complete.\nBody length: " + this.responseText.length);
            sys.puts("Body:\n" + this.responseText);
        }
    };

    xhr.open("POST",apic_url,true);
    xhr.setRequestHeader("Content-type","application/json");
    xhr.setRequestHeader("Accept","application/json");
    xhr.responseType = 'JSON';
    xhr.send(JSON.stringify(json_text2));
    app.locals.apic_nd = xhr.responseText;

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 20:09:53

多亏了jfriend00,我才能让它发挥作用(我不知道该如何反驳他的评论。但下面是我使用的代码:

代码语言:javascript
运行
复制
var apicem_ip = "sandboxapic.cisco.com:9443";
var apic_url = 'https://'+apicem_ip+'/api/v1/ticket';

var request = require('request');

var options = {
  url: 'https://'+apicem_ip+'/api/v1/ticket',
  method: "POST",
  headers: {
    'Content-type': 'application/json'
  },
  body: '{ "username": "admin", "password": "----"}'
};

function callback(error, response, body) {
  console.log("callback function");
  if (!error) {
    var info = (JSON.parse(body));
    console.log(info);
    console.log("status 200");

  }
  else {
    console.log(JSON.parse(body));
  }
}

request.post(options, callback);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36994687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档