CORS with jQuery
jQuery's $.ajax()
method can be used for standard XHR and CORS requests.
Note
Things to know about CORS with jQuery2
JQuery's CORS implementation doesn't support IE's XDomainRequest
object, which is needed prior to Internet Explorer 10. There are jQuery plugins and workarounds. $.support.cors
can signal support for CORS. It is set to true if the browser supports CORS (but in IE it always returns false). This can be a quick way to check for CORS support.
In jQuery, define the XHR
functions using the same techniques as for CORS with JavaScript:
$.ajax({ // The 'type' property sets the HTTP method // Any value other than GET, POST, HEAD (eg. PUT or DELETE methods) will initiate a preflight request type: 'GET', // The Target Domain URL to make the request to url: 'http://targetdomain.com', // The 'contentType' property sets the 'Content-Type' header // The JQuery default for this property is // 'application/x-www-form-urlencoded; charset=UTF-8' // If you set this value to anything other than // application/x-www-form-urlencoded, multipart/form-data, or text/plain, // you will trigger a preflight request contentType: 'text/plain', xhrFields: { // The 'xhrFields' property sets additional fields on the XMLHttpRequest // This can be used to set the 'withCredentials' property // Set the value to 'true' to pass cookies to the server // If this is enabled, your server must respond with the header // 'Access-Control-Allow-Credentials: true' // Remember that IE <= 9 does not support the 'withCredentials' property withCredentials: false }, headers: { // Set custom headers // If you set any non-simple headers, your server response must include // the headers in the 'Access-Control-Allow-Headers' response header }, success: function() { // Handler for a successful response, do something with the response.Text }, error: function() { // Error handler // Note that if the error was due to an issue with CORS, // this function will still be triggered, but there won't be any additional information about the error. } });
jQuery CORS AJAX plugin
A jQuery plugin for CORS is available at http://plugins.jquery.com/cors.
The plugin sends cross-domain AJAX requests through corsproxy.io
.
Chapter 2, Creating Proxies for CORS, gives details about using proxies with CORS.