ajax 提交的内容 里面包含什么呢,  比如100个用户都是在用, 各自提交,网站都能区分开,证明ajax 里面加了 区分用户的标识, 但具体是什么,  网站的原理又是什么,我对网站的提交原理,或者说http原理 ,都不太清楚,请问有这方面的 网页链接吗,谢谢。
(表面上看ajax提交的内容都是表单的input内容,好简单)

解决方案 »

  1.   

    一般都是用session url参数或用户登录id识别
      

  2.   

    客户端和服务器的通信叫会话,每个客户端都会有一个唯一的SessionID,大概就是用这个区别的!
      

  3.   

    用户在登录时会保存用户信息(如 userId, userName)到 Session, Session 可以唯一识别每个用户。
    在提交表单时, 如果需要用户信息, 可以从Session 取出 userId 之类的信息。实际上, 网站要考虑 Session 的过期问题(一般是 20 分钟)。
      

  4.   

    正规的产品级的架构,设计 ajax 协议通常不会简单地沿用传统的 web 网站的 SessionID,而是会使用一个通用且独立的机制。例如微信的 jsapi 有自己的 code/token 机制,要求在每一次访问是提交这个值。这样服务器端代码并不是用什么 IRequireSession,而是抛开编程语言/平台它自己的 Session 机制,用更加通用的知识来实现服务器端编程!所以你需要了解和使用 http 请求服务器时的附加普通参数的基本原理即可。
      

  5.   

    如果是session机制,那么ajax提交时,同时会提交存在cookie里的sessionid
    如果是jwt之类的其它机制,那么是通过传递的token识别
      

  6.   

    ajax提交同样可以使用cookie和session,用以区分用户,和普通的提交并无大的区别。你可以再研究下ajax的参数细节。==========
    欢迎关注微信公众号 “产品技术知与行” ,打造全面的结构化知识库,包括免费课程(C#,Java,Js)、技术专题、视野知识、源码下载等内容。 
      

  7.   

    我在网页那个位置可以看到SessionID呢,如果我可以看到SessionID,是不是我用winfrom POST 提交也可以呢
      

  8.   

    有cookie,有token,有session那么我们还说什么呢?真不会用的话,只能让你去补补http协议了
      

  9.   

    用户的ID 不是唯一的吗  你用用户ID 区分就好了啊
      

  10.   


    你正规学习 asp.net,学习其 html/js 前端调试,学习 http 调试上下行消息,能了解 asp.net 的 SessionID 规则。.net 使用 WebClient 等类型的对象来调用 http 通讯的时候可以同时提供一个 CookieContainer 对象给Request,也可以读取 Response 的 CookieContainer。但是你必须编程。那么设计一个服务,对人说“我们的服务支持 ajax 调用”,这通常就不能说什么“我们支持 asp.net"。你应该按照通行的 http 数据服务来设计,不管客户端用 c# 还是 php 或者 typescript,不管是桌面程序、控制台程序还是网页脚本调用它,都应该支持。你看看通用的 web api 设计,例如阿里巴巴开放平台、微信开放平台等等,有哪一个说“我们的 api 是专门只支持 asp.net 的 Session 机制的”呢?
      

  11.   

    拿微信开放平台为例,它定义了一个注册功能,就是获得了 token 值(实际上由服务器先授权一个 code 编码,然后再次跟服务器交互来换取 token 值),然后后续的 ajax 请求就在访问的 url 上带上这个 token 值。并且其实还要求这个 token 必须几十分钟就重新申请一次。你定义一个“登录”功能,返回给客户端一个授权码。然后要求客户端以后的请求中(不管是使用 get 参数还是 post 参数)带上这个授权码。关键是你要对使用它的程序员说这个是普通的自定义 http 参数,是你自己发明的简单授权编码,而不是某个极其复杂的编程平台的龟腚必须协调一致的一个编码。