码迷,mamicode.com
首页 > Web开发 > 详细

CORS实现跨域Ajax

时间:2017-03-17 17:37:24      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:blocks   pytho   port   app   button   sed   ajax   setting   index   

客户端

技术分享
#!/usr/bin/env python
import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        self.render(index.html)
    def post(self, *args, **kwargs):
        self.render(index.html)

class CorsHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        self.render(index.html)
    def post(self, *args, **kwargs):
        self.render(index.html)
settings ={
    template_path:views,#html文件模板路径配置
    static_path:statics,#css,js文件路径配置
    static_url_prefix:/sss/,
}
application = tornado.web.Application([
        (r"/index", MainHandler),
    (r"/cors", CorsHandler),
        ],**settings)
if __name__ == "__main__":
    application.listen(8000)
    tornado.ioloop.IOLoop.instance().start()
app.py
技术分享
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     <input type="button" value="Jsonp" onclick="JsonpAjax();">
    <input type="button" value="DOJsonp" onclick="DoJsonpAjax();">
    <script src="{{static_url(‘jquery-3.1.1.js‘)}}"></script>
    <script>
/
         function DoJsonpAjax() {
            $.ajax({
            url:http://tao.com:8001/cors,
            type:POST,
            data:{k1:v1},
            success:function (arg) {
                console.log(arg)
            }
        })
        }
        function JsonpAjax() {
            $.ajax({
            url:http://tao.com:8001/cors,
            type:PUT,
            headers:{h1:HH1},
            data:{k1:v1},
            xhrFields:{withCredentials:true},
            success:function (arg) {
                console.log(arg)
            }
        })
        }
//        function DoJsonpAjax() {
////            var tag = document.createElement(‘script‘);
////            tag.src = "http://www.jxntv.cn/data/jmd-jxtv2.html?callback=list";
////            document.head.appendChild(tag);
////
////            document.head.removeChild(tag);
//////
//            $.ajax({
//                url: "http://tao.com:8001/index",
//                type:"POST",
//                dataType: ‘jsonp‘,
//                jsonp:‘callback‘,//相当于在url: "http://tao.com:8001/index?callback= xxoo",
//                jsonpCallback: "xxoo"//相当于在url: "http://tao.com:8001/index?callback= xxoo",
//            })
//        }
    </script>
</body>
</html>
index.html

服务端

技术分享
#!/usr/bin/env python
import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        callback = self.get_argument(callback)
        self.write("{}([11,22,33])".format(callback))
    def post(self, *args, **kwargs):
        self.write(t2.post)
class CorsHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        self.write(index.get)
    def post(self, *args, **kwargs):
        self.set_header("Access-Control-Allow-Origin","http://taochen.com:8000")
        self.write(index.post)
    def options(self, *args, **kwargs):
        self.set_header("Access-Control-Allow-Origin", "http://taochen.com:8000")
        self.set_header("Access-Control-Allow-Methods", "PUT,DELETE")
        self.set_header("Access-Control-Allow-Headers", "h1")
        self.set_header("Access-Control-Allow-Credentials",true)
    def put(self, *args, **kwargs):
        print(self.cookies)
        self.set_cookie(kk,kkk2)
        self.set_header("Access-Control-Allow-Origin", "http://taochen.com:8000")
        self.set_header("Access-Control-Allow-Credentials", true)
        self.write("ok")
settings ={
    template_path:views,#html文件模板路径配置
    static_path:statics,#css,js文件路径配置
    static_url_prefix:/sss/,
}
application = tornado.web.Application([
        (r"/index", MainHandler),
    (r"/cors", CorsHandler),
        ],**settings)
if __name__ == "__main__":
    application.listen(8001)
    tornado.ioloop.IOLoop.instance().start()
app.py

 

CORS实现跨域Ajax

标签:blocks   pytho   port   app   button   sed   ajax   setting   index   

原文地址:http://www.cnblogs.com/shiluoliming/p/6567429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!