Cross-site HTTP requests are HTTP requests for resources from a different domain than the domain of the resource making the request. Cross-site HTTP requests initiated from within scripts have been subject to well-known restrictions, for well-understood security reasons.
The Web Applications Working Group within the W3C has proposed the new Cross-Origin Resource Sharing (CORS) recommendation, which provides a way to web servers to securely handle cross site requests.
The Cross-Origin Resource Sharing standard works by adding new HTTP headers that allow servers to describe the set of origins that are permitted to read that information using a web browser.
A simple cross site request happen when we will make an https ajax request for login from a page loaded with http protocol (I will give an example of this). This can be happen for an http ajax call to a separate domain.
Example:
Here I will show how to make an https ajax call to a WCF service from a page loaded with http.
From the javascript you should make the request in the following way
var url = “https://serveraddress/service1.svc/UserInfo” var invocation = new XMLHttpRequest(); var invocationHistoryText; function UserInfo() { if (invocation) { invocation.open('GET', url, true); invocation.onreadystatechange = handler; invocation.send(); } else { alert("No Invocation TookPlace At All"); } } function handler(evtXHR) { if (invocation.readyState == 4) { if (invocation.status == 200) { var response = invocation.response; alert(response); } else alert("Invocation Errors Occured"); } }
And from the service we need to add header Access-Control-Allow-Origin with value http://Serveraddress to allow cross site request.
public string UserInfo() { HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "http://serveraddress"); return "This is your information"; }
Visit for details https://developer.mozilla.org/En/HTTP_access_control
