对了,js的代码如下
function gohealthcheck() {
            $.ajax({
                url:"http://www.abc.cn/api",
                data: {},
                type: "get",
                dataType: "json",
                xhrFields: {
                    withCredentials: true
                },
                crossDomain: true,
                success: function (json) {
                    $("#txt").append(json.data + '</br>');
                }
            });
        }
查了很多资料,已经加了
xhrFields: {
                    withCredentials: true
                },
                crossDomain: true,

解决方案 »

  1.   

    webapi 用Session 表示费解, 跨域请求 浏览器不会帮你提交COOKIE 的
      

  2.   

    对于这种问题,
    我认为用redis缓存,比session更加靠谱。
      

  3.   


    如果通过代码无法重用session(cookie)机制的话,那么就只好退而求其次的用token+缓存的机制来实现其实在我看来这并不是靠谱不靠谱的事,.net+iis 的session靠谱程度上肯定没问题,只是这样的机制不适用当前时代的项目需求,如果我们能通过解决问题来降低开发成本就最好了,如果不行那么只好用现在流行的方案解决现在的问题
    ps:
    开发成本包括鉴权部分代码重构,缓存部分代码重构,前后端开发人员培训,额外搭建redis服务器这些在我看来可能比起解决这个难点来说不划算一些
      

  4.   


    如果通过代码无法重用session(cookie)机制的话,那么就只好退而求其次的用token+缓存的机制来实现其实在我看来这并不是靠谱不靠谱的事,.net+iis 的session靠谱程度上肯定没问题,只是这样的机制不适用当前时代的项目需求,如果我们能通过解决问题来降低开发成本就最好了,如果不行那么只好用现在流行的方案解决现在的问题
    ps:
    开发成本包括鉴权部分代码重构,缓存部分代码重构,前后端开发人员培训,额外搭建redis服务器这些在我看来可能比起解决这个难点来说不划算一些
    如果说在现有项目基础上,不希望拓展的话,那么只能解决跨域时,保存cookie的session,其实这个问题,好像不是特别困难的。
      

  5.   


    你按照“接口”的规范去设计就可以了,不要把让接口去适应页面,而应该让页面去使用接口。在页面上使用接口时,就应该按照接口规范,你原来在接口中纠结 asp.net 的 独特的 session机制这本来就是 asp.net 的问题。
      

  6.   


    前端开发为主。因此不应该纠结 asp.net 服务器端给你产生和动态维系的客户端 session id。所谓的 asp.net 的一遍遍刷新页面的服务器端编程中的所谓 session 机制,你脑子中现在还以这个为主。
      

  7.   


    有些是小节,有些是变革。许多小节看似高大上,其实长期看没啥必要。比如说世界上那么多伟大的盛世王朝,其实往往就是通过杀人——让人口急剧减少——来提高人均生产力的,仅仅有不到5次几次世界级的技术革命变了世界,其它的人类改变其实主要是靠政治手腕而技术变革的效果并不突出。从所谓“通过解决问题来降低开发成本”演进到“用现行的流行方案解决现在的问题”是一个重大的技术变革,是放弃什么 asp.net 页面编程的概念,而真正采用前端技术优先的战略,从此也就不纠结什么 asp.net、php、jsp 或者别的服务器端编程语言。