小编Jar*_*vec的帖子

跨域会话 - 共享购物车跨域

我们用eshop(php,mysql)解决了这个问题.客户希望在具有共享购物车的两个域上拥有相同的电子商店.在商店中,顾客可以在没有用户帐户的情况下进行购物(无法登录).并且存在问题,如何使共享购物车跨域.

来自购物车的数据存储在会话中,我们也存储在数据库中.但我们无法解决在域上传输数据的问题.识别未登记的用户并非防洞(研究).

这个例子,它应该如何工作

客户转到domainOne并向购物车添加一些内容.然后他去domainTwo(通过链接,输入域名地址,然而)并添加一些其他的东西到购物车.在购物车中,他有来自两个域的东西(刷新页面后).

你有什么想法,如何解决这个问题?

什么行不通:

  • 由于客户要求,无法重定向
  • Cookie与域名相关
  • set_cookie与其他域名无法正常工作
  • 最简单的方法是仅继承sessionid(存储在cookie中),但我们不知道如何全面识别未记录的用户.
  • 还有其他地方,除了cookie之外,数据可以存储在客户端吗?(可能不是)
  • 我们不能使用url中的params发送sessionid(如果用户点击链接到其他域)或解析标题引用,bcs我们不知道,用户如何实现其他域.

如果你无法理解我,请带我一个问题.如果您认为,在共享(普通)购物车的两个域上使用eshop是个坏主意,请不要告诉我,我们知道.

谢谢你的每一个答案.

php cookies session client-side cross-domain

13
推荐指数
1
解决办法
1万
查看次数

在Chrome中加载(readyState == 3)时XmlHttpRequest.responseText

我试图通过ajax(通过XmlHttpRequest(= xhr)在Javascript中"流式传输"(从服务器到客户端).我使用的是在"HTTP Streaming"(推送)AJAX模式的跨浏览器实现中描述的修改后的handleResponse函数

function handleResponse() {
if (http.readyState != 4 && http.readyState != 3)
    return;
if (http.readyState == 3 && http.status != 200)
    return;
if (http.readyState == 4 && http.status != 200) {
    clearInterval(pollTimer);
    inProgress = false;
}
// In konqueror http.responseText is sometimes null here...
if (http.responseText === null)
    return;

while (prevDataLength != http.responseText.length) {
    if (http.readyState == 4  && prevDataLength == http.responseText.length)
        break;
    prevDataLength = http.responseText.length;
    var response = http.responseText.substring(nextLine);
    var lines = response.split('\n');
    nextLine = …
Run Code Online (Sandbox Code Playgroud)

javascript ajax streaming google-chrome xmlhttprequest

7
推荐指数
2
解决办法
3万
查看次数