var my_supplies = {supplies: ['mop', 'broom', 'duster']}
var html = new EJS({url:'http://192.168.21.87:3001/ejs_template/test.ejs'}).render(my_supplies);
老是报错.跟了下源码,发现当EJS获取URL的时候(request.open("GET", path, false);)返回状态是0没错,但是request.responseText却为空的.可是我把这个地址由浏览器打开来,却可以看到文本,如下.但为回来就是空呢?
所以很纠结.求各大神解惑~javascriptejsjs模板
复杂方法: 可能是ajax的请求头设置不对..没有声明content-type是文本类型
建议弄个静态WEB服务器..放到服务器里运行.
请求头已经改成 res.writeHead(200,{'Content-Type':'text/html'});了请求的是网络EJS文件.前面有加域名.单独去访问是可以访问的.有图.
100%跨域了,firefox下原网站和请求的网站端口号即使不一致也算跨域
不应该是返回状态0.100%跨域了,firefox下原网站和请求的网站端口号即使不一致也算跨域
100%跨域了,firefox下原网站和请求的网站端口号即使不一致也算跨域IE会报错,firefox这种不会报错,结果不会交给js使用,xhr的状态为0,ajax对象属性withCredentials
100%跨域了,firefox下原网站和请求的网站端口号即使不一致也算跨域IE会报错,firefox这种不会报错,结果不会交给js使用,xhr的状态为0,ajax对象属性withCredentials
一直在用chrome..跨域请求也会报错..
xhr状态为0的情况..我只记得以前直接点开本地html,里面ajax请求本地文件会是0.后来这种chrome会报跨域错误.
var xhr = new XMLHttpRequest();
xhr.open('get', 'http://bbs.csdn.net/', true);
xhr.onreadystatechange = function () {
if (4 == xhr.readyState) alert(xhr.responseText+'\n'+xhr.status);
}
xhr.send(null);
</script>
总体结构是这样的,A域名这个站点,上面有部分内容时由我B服务去自动生成的写入的.这属于跨域了已经,但是我B服务已经允许跨域了.EJS文件也是在我B上,我在B服务上用的全路径调用B上的EJS.为什么还会产生跨域的问题呢?
这个问题就好奇怪了的.