有一个node.js服务器,当客户端使用websocket连接到node.js服务器时,我将调用我的web api控制器。我使用socket.io连接客户端和node.js服务器,然后node.js服务器向web api控制器发送一个xhr POST请求。但获取的响应为“”Message“”:“未找到与请求URI”“http://localhost:4928/api/Player”“匹配的HTTP资源。”,“MessageDetail”:“在控制器”“Player”“上未找到与请求匹配的操作。”}“
Web API方法
public class PlayerController : ApiController
{
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
public string Post(string value)
{
return value;
}
}
Node.js
var app = require('express')();
var http = require('http').Server(app);
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
var querystring = require('querystring');
var io = require('socket.io')(http);
io.on('connection', function (socket) {
console.log('A user connected ' + socket.handshake.address);
PostRequest(socket.handshake.address);
//Whenever someone disconnects this piece of code executed
socket.on('disconnect', function () {
console.log('A user disconnected ' + socket.handshake.address);
});
});
function PostRequest(data) {
var url = "http://localhost:4928/api/Player";
var params = "value=" + data;/* querystring.stringify({ "value": data })*/
xhr.open('POST', url, true);
xhr.onreadystatechange = function () {//Call a function when the state changes.
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
console.log(xhr.responseText);
}
xhr.send(querystring.stringify({ value: "sss" }));
}
http.listen(3000, function () {
console.log('listening on *:3000');
});
无论如何,当我调用get方法发送一个xhr get请求时,这是可以工作的
https://stackoverflow.com/questions/50891404
复制相似问题