Ajax实现跨域请求

由于同源策略的限制,考虑到安全因素,浏览器不能跨域去请求数据。当然如果有跨域请求数据的需求,也是可以实现的。实现如下(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)在没明确授权的情况下,不能读写对方的资源。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容