jsonp简单小demo

问题:js不能跨域调用,就是只能调用本项目下的action,但是script可以实现跨域的功能,比如我们平常引入的js文件了什么的(网上在线的),我们可以通过创建script来实现,也可以用ajax来实现。我就用ajax来实现,很简单:
和普通的ajax差不多,只不过需要稍微调整。

    <script type="text/javascript">
        $(function(){
            $.ajax({
                url:"http://localhost:8080/Demo/ActionDemo",
                type:"get",
                dataType: "jsonp", //必须
                async: false,     //非必须
                jsonpCallback:"xx", //必须,服务端需要和这个xx相对应
                success:function(data){
                    alert(JSON.stringify(data))
                }
            })
        })
    script>

服务端需要把所传送的数据用xx()包着
比如:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setCharacterEncoding("gbk");
        response.getWriter().write("xx({'key':'value'})");
    }

这就ok了。简单吧

你可能感兴趣的:(ajax)