Error posting HTTP DELETE from server side

Hello,
I’m trying to make an HTTP DELETE call server side but I’m getting two errors which is prohibiting this. First, when II try to set the content length to zero I get:

(STDERR) Refused to set unsafe header “Content-length”

Then when I send the DELETE, the callback comes back with a 411 error indicating that no Content-length set on the DELETE. The code is below. Is there a better way to attempt this?

xmlhttp = Meteor.npmRequire('xmlhttprequest').XMLHttpRequest;
...
var xhrDelete = new xmlhttp();
xhrDelete.open('DELETE', msgURL, true);
xhrDelete.setRequestHeader('Content-length', '0');
xhrDelete.onreadystatechange =
   function () {
      if (xhrDelete.readyState == 4) {
         var serverResponse = xhrDelete.responseText;
         var status = xhrDelete.status;
         if (status != 200) {
            console.log("MEF Msg DELETE error: " + status + " Message: " + serverResponse);
         }
         console.log("DELETE Msg status: " + status);
      }
   }
xhrDelete.send(null)

Just curious - why the npm method and not Meteor’s inbuilt HTTP methods?

I didn’t know there was one at the time of the posting. I’ve since found it, but it too is giving me trouble. The response callback is receiving a getaddrinfo ENOTFOUND error. The server I’m trying to hit is running as a virtual machine on the same computer meteor is running on. Note that the xmlhttprequest and EventSource modules that I use have no trouble reaching the address, and I can ping it from my meteor machine.

Here’s the HTTP code I’m using:

   var msgURL = 'http://mef.ons.pnet/myapp/messages/' + msgId;
   var results = HTTP.del(msgURL , function (error, result) {
        if (error) {
               console.log(error.response.status);
        }
  })

;

When you say that you can ping it etc., is this with a valid msgId appended to the base address as your code uses? Have you confirmed that this is correctly set in your code?

Yes. e.g. putting this:

http://mef.ons.pnet/ground_control/messages/8bff5a47-6049-46b6-9567-d40dae5a66b2

in my browser (which was taken directly from my meteor debugger as the URL I’m using in the call) nets me this in the resulting page:

{“MT-Current-Config”:“001.250.300”,“GC-Conversation-Id”:“9tCFYmdwKau9TBstj”}

Which is the expected return value for a get. I’m not sure how to do a DELETE from the browser though so haven’t test that.