I have the below javascript AJAX request which works:
$.ajax({
type: "POST",
url: requestUrl,
data: {
var1: 'value1',
var2: 'value2',
var3: 'value3'
},
xhrFields: {
withCredentials: true
},
dataType: "json",
crossDomain: true,
complete: function (jqXhr, textStatus) {
if (jqXhr !== undefined && jqXhr !== null && jqXhr.statusText === "OK") {
alert("Request Success" + jqXhr.responseText);
} else {
alert("Request Failed" + (jqXhr.responseText || textStatus));
}
}
});
I would like to do the same using .NET.
I tried the following:
string result = string.Empty;
try
{
using (var client = new WebClient())
{
client.Credentials = new NetworkCredential("userName", "password");
var values = new NameValueCollection();
values["var1"] = "value1";
values["var2"] = "value2";
values["var3"] = "value3";
var response = client.UploadValues(requestUrl, values);
result = Encoding.Default.GetString(response);
}
}
catch (Exception exception)
{
Console.WriteLine("Error=" + exception.Message);
}
Console.WriteLine("result=" + result);
However I get an Internal Server Error.
How do I recreate a cross domain request? Is there a specific header to set?
WebException details:
Response: "The remote server returned an error: (500) Internal Server Error." Headers: Persistent-Auth: true Content-Length: 5143 Cache-Control: private Content-Type: text/html; charset=utf-8 Date: Tue, 14 Jul 2015 12:03:21 GMT Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET