title: convert VB.NET to jQuery
body: <p>I'm trying to use web-based API. All I received from my client is this code:</p>
  
  <pre><code>Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      Dim client = New Net.WebClient
      client.Credentials = New Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings("apiUsername"), _
                                                      System.Configuration.ConfigurationManager.AppSettings("apiPassword"), _
                                                      System.Configuration.ConfigurationManager.AppSettings("apiDomain"))
  
  
      client.Headers(Net.HttpRequestHeader.ContentType) = "application/json"
      Dim eventParam As New PlumbingLibrary.StreamGameParam With {.EnterpriseId = txtAuthorEID.Text,
                                                                   .HeaderText = TxtText.Text,
                                                                   .ImageUrl = txtURL.Text,
                                                                   .Title = txtPhotoURL.Text,
                                                                   .Description = txtAlbumURL.Text}
  
      Dim stream As New IO.MemoryStream()
      Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(PlumbingLibrary.StreamGameParam))
      serializer.WriteObject(stream, eventParam)
  
      Dim data As Byte() = client.UploadData(PlubingAPI_URL, "POST", stream.ToArray())
  
  
      stream = New IO.MemoryStream(data)
      serializer = New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(PlumbingLibrary.Activity))
      Dim returnActivity = TryCast(serializer.ReadObject(stream), PlumbingLibrary.Activity)
  
      End Sub
  </code></pre>
  
  <p>This is part of working VB desktop application that I'm supposed to use as a example.
  Project I'm working on is solely web based though. All written in javascript/jquery. </p>
  
  <p>I tried this: </p>
  
  <pre><code> var username = "API-ID",
      password = "API-PASS",
      url = "API-URL";
  
  
   function make_basic_auth(user, password) {
    var tok = user + ':' + password;
    var hash = Base64.encode(tok);
    return "Basic " + hash;
  }
  
  var auth = make_basic_auth(username,password);
  
  $.support.cors = true;
  
    $.ajax
        ({
          type: "POST",
          url: url,
          contentType: "application/json; charset=utf-8",
          async: false,
          crossDomain: true,
          data: JSON.stringify({EnterpriseId: "the.id",
                                HeaderText: " ",
                                ImageUrl: " ",
                                Title: " ",
                                Description: " "
          }),
          beforeSend : function(req) {
              req.setRequestHeader('Authorization', auth);
          },
          success: function (){
              console.log('Success');
              $("body").append("success");
          },
          error: function (xhr, err) {
              console.log("ERROR");
              console.log(xhr.statusText);
          }
      });
  </code></pre>
  
  <p>I also tried all other ajax + cors variations. </p>
  
  <p>e.g.: </p>
  
  <pre><code>xhr = new XMLHttpRequest();
        xhr.open('POST', url, true);
  
        console.log(xhr);
        xhr.setRequestHeader('X-PINGOTHER', 'pingpong');
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.setRequestHeader('Authorization', auth);
  </code></pre>
  
  <p>but I'm getting 401 unautorized and No 'Access-Control-Allow-Origin' header. 
  The login information I have work with the desktop app. I can also login directly thru http login in browser to the API url. </p>
  
  <p>Does anyone can help? </p>