qianqianxiao 2015-08-13
最近在用一个Webx实现一个JSONP跨域调用的接口,从不同环境传输数据。
遇到几个问题:
1、首先是Webx是默认配置HTML转义的,在webx-component-and-root.xml文件默认配置了HTML转义,这个很好理解,为安全可以有效防止xss注入,JSONP要输出原生的js,让浏览器识别那JSONP中的js就不能被转义。
2、如果不想转义,那么需要用#noescape $!json #end 跳出转义,在<velocity-engine>中配置了no-escape的列表,凡是匹配的变量及表达式就不会被转义。
3、JSONP跨域,JQuery的$getJSON的函数原生支持跨域。注意后端组装callback函数的写法,请求数据
http://test.com/jsonResultService.htm?id=123&callback=parseJson
后端获取callback参数之后,输出parseJson({'id':'123','name':'hongbing'})