I am trying to call webservice over cross domain using jQuery.
Here is my code to call service
$(document).ready(function () {
$.ajax({
Your WCF server should be configured to enable jsonp
with CrossDomainScriptAccessEnabled
Here is a simple working example
Server:
Task.Run(() =>
{
var uri = new Uri("http://0.0.0.0/test");
var type = typeof(TestService);
WebServiceHost host = new WebServiceHost(type, uri);
WebHttpBinding binding = new WebHttpBinding();
binding.CrossDomainScriptAccessEnabled = true;
host.AddServiceEndpoint(type, binding, uri);
host.Open();
});
[ServiceContract]
public class TestService
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public string Hello()
{
return "Hello World";
}
}
And this is the javascript code
<html>
<body>
<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>
<script>
$(document).ready(function () {
$.ajax({
type: 'GET',
async: false,
contentType: "application/json",
url: "http://localhost/test/hello",
dataType: "jsonp",
success: function (data) {
alert(data);
},
error: function (data) {
alert(data);
}
});
});
</script>
</body>
</html>
Now you can test it from your browser
http://localhost/test/hello
and
http://localhost/test/hello?callback=myfunc