• 关于js跨域


    get方式:

    称为jsonp,就是js的跨域通信方式,因为知道有些标签可以跨域获取内容,例如img,script,link...,jsonp就是把动态创建一个script标签,然后配置src属性,后台代码返回的时一个函数,称之回调函数,后台完成业务后,调用下面这个AjaxHandleCrossDomainFormat()来返回一个要回调函数,后台执行完成后并返回此js代码,然后调用js的success_jsonpCallback方法,因为ajax封装好了,所以直接在参数[jsonpCallback]处写这个方法的名称即可,至于ajax中jsonp这个参数就类似于url中的ID=1,在这里时callback=success_jsonpCallback(),这些名字可以随便改,实现跨域也可以用iframe之类的,也可以不用ajax,动态创建一个script标签,把网址赋进去,然后本地在写一个方法,后台返回值就是这个方法,他自己就会调用,

    还有,了解到,jsonp作为一种数据传输方法,和ajax的意义是相冲突的,本身jsonp是不应该集成在ajax中的,跨域的简单笔记完成~

      private string AjaxHandleCrossDomainFormat(string Json, string callbackparam = null)
            {
                if (callbackparam == null)
                {
                    return "success_jsonpCallback([" + Json.Replace(@"
    ", "").Replace(""", "'").Replace(@"", "") + "])";
                }
                else
                {
                    return callbackparam + "([" + Json.Replace("
    ", "").Replace(""", "'").Replace(@"", "") + "])";
                }
            }

    ajax: 

    $.ajax({
                    type: "post",
                    url: "http://myesn.cn/remote.js",
                    dataType: "jsonp",
                    jsonp: "callback",
                    jsonpCallback: "success_jsonpCallback",
                    success: function (data) {
                        console.trace();
                        console.log(data.result);
                    },
                    error: function (msg) {
                        console.log(msg.statusText);
                    }
                });


    Post方式:

    添加IIS的mime类型,添加以下三个就可以了,改变Access-Control-Allow-Origin 就可以限制来访的网址

    Access-Control-Allow-Headers:*

    Access-Control-Allow-Methods:POST

    Access-Control-Allow-Origin:*

  • 相关阅读:
    PAIP.MYSQL数据库比较
    paip.验证码识别----判断汉字还是英文
    SQLServer2008客户端软件
    paip.多个TOMCAT共存在一台主机上配置方法
    paip.银行卡号的发卡行归属地查询
    paip.获取当前实际北京时间API
    PAIP.HIBERNATE ORA02289 sequence does not exist的解决
    C51与汇编语言混合编程之一
    KEIL C51高级编程之二
    可重入函数与不可重入函数(转)
  • 原文地址:https://www.cnblogs.com/myesn/p/javascript-cors-jsonp.html
Copyright © 2020-2023  润新知