¿Cómo JQUERY y JQM causan error CORS?
Tengo una página HTML5 sin Jquery que no tenga ningún error CORS como se muestra a continuación
<!DOCTYPE html>
<HTML>
<button type="button" onClick="getBase64FromImageUrl()">Click Me!</button>
<img id="preview1" crossorigin="anonymous" src="http://www.gravatar.com/avatar/0e39d18b89822d1d9871e0d1bc839d06?s=128&d=identicon&r=PG">
<script type="text/javascript">
function getBase64FromImageUrl() {
var img = new Image();
img = document.getElementById("preview1");
var canvas = document.createElement("canvas");
canvas.width =img.width;
canvas.height =img.width;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert( dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
}
</script>
</HTML>
Este código puede devolver datos de imagen base64 y funciona bien.
Una vez que agrego Jquery y JQM en él, devuelve un error de CORS, el código como abajo
<!DOCTYPE html>
<HTML>
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.3.2.min.js">/script>
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.3.2.css" />
<link rel="stylesheet" type="text/css" href="css/custom.css" />
<button type="button" onClick="getBase64FromImageUrl()">Click Me!</button>
<ul data-role="listview" data-filter="true" data-filter-placeholder="Search ..." id="Pro">
<li id="1">
<a>
<img id="preview1" crossorigin="anonymous" src="http://www.gravatar.com/avatar/0e39d18b89822d1d9871e0d1bc839d06?s=128&d=identicon&r=PG">
<h2>Warning</h2>
<p>Hot</p>
</a>
</li>
</ul>
<script type="text/javascript">
function getBase64FromImageUrl() {
var img = new Image();
img = document.getElementById("preview1");
var canvas = document.createElement("canvas");
canvas.width =img.width;
canvas.height =img.width;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert( dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
}
</script>
</HTML>
Después de incluir Jquery y JQM, no puedo obtener datos de imagen base64, debido al error CORS para jquery, el mensaje de error está debajo
Cross-origin image load denied by Cross-Origin Resource Sharing policy. jquery-1.9.0.min.js:3
No tengo ni idea de por qué una vez incluir el error CORS suceda. En mi lado del servidor he incluido el encabezado para permitir el origenHeader add Access-Control-Allow-Origin "*"