美文网首页
Ajax实现跨域请求

Ajax实现跨域请求

作者: zivsu | 来源:发表于2016-08-08 01:26 被阅读0次

    由于同源策略的限制,考虑到安全因素,浏览器不能跨域去请求数据。当然如果有跨域请求数据的需求,也是可以实现的。实现如下(tornado+ajax):

    Server side:

    class CrossDomainTestHandler(RequestHandler):
    
        def get(self):
            callback = self.get_argument("callback", "")
            # Prepare data
            data = "test"
            result = callback + "(" + json.dumps({"data":data}) + ")"
            self.write(result)
    

    注意点:获取callback然后和需要返回的数据组装成指定的形式

    client side:

    var url = "http://test.com";
        $.ajax({
            type: "GET",
            url: url,
            dataType: 'jsonp',
            data: {},
            success: function (resp_data) {
            // deal with resp data
            },
            error: function () {
                alert("系统出现错误,请稍后再试");
            }
        });
    

    以上简单的代码就可以实现跨域请求数据,但是跨越也会带来危害的,涉及到敏感数据尽量不使用跨域

    同源策略(Same-Origin Policy):所谓同源是指,域名,协议,端口相同。不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。

    相关文章

      网友评论

          本文标题:Ajax实现跨域请求

          本文链接:https://www.haomeiwen.com/subject/bgolsttx.html