jQuery getJSON 不发送 cookie

2023-11-25

我在域 1 中包含 JS,形成域 2

<script type="text/javascript" src="http://www.domain2.com/script.js"></script>

该脚本不会加载,并且在按钮上单击对domain2的JSONP请求

$.getJSON( 'http://www.domain2.com/process?callback=?',
    function(data){
        if ( data ) processData( data );
    }
);

然后在domain1上显示数据。

所以这是我的问题: getJSON 请求不会将 cookie 发送到域 2。 最奇怪的是,它确实发送了半天的饼干,而另一半则没有。 :-)

这是请求不起作用时的样子:

Request details
GET /ajax/embed-user-library?detail=98&callback=jsonp1312398534998 HTTP/1.1 
User-Agent: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50
Host: www.floowie.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en,sk-SK;q=0.9,sk;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://www.sokker.cz/en/test2
Connection: Keep-Alive

Response details
HTTP/1.1 200 OK 
Date: Wed, 03 Aug 2011 19:06:51 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.5-0.dotdeb.1
Set-Cookie: SESSID=64292b70dc28d7c6c9f13f70070353d8; path=/; domain=.floowie.com
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Content-Length: 34
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/json

当它起作用时(脚本中没有任何改变):

Request details
GET /ajax/embed-user-library?detail=99&test=1&callback=jsonp1312398534999 HTTP/1.1 
User-Agent: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50
Host: test1.floowie.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en,sk-SK;q=0.9,sk;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://www.sokker.cz/en/test2
Cookie: __utma=254918925.1489796832.1301725317.1312260335.1312298033.44; __utmz=254918925.1312298033.44.11.utmcsr=sokker.cz|utmccn=(referral)|utmcmd=referral|utmcct=/en/test2; lang=en; FLWSESSID=ddd1bc696f83f5a70b5f0f3ae30b4691; __utma=121955676.1030804516.1282595153.1312390656.1312397285.194; __utmb=121955676.8.10.1312397285; __utmc=121955676; __utmz=121955676.1312397285.194.21.utmcsr=floowie.crmserver.cz|utmccn=(referral)|utmcmd=referral|utmcct=/index.php
Connection: Keep-Alive

Response details
HTTP/1.1 200 OK 
Date: Wed, 03 Aug 2011 19:07:45 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.5-0.dotdeb.1
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Content-Length: 20
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/json

有人看到这样的行为吗? 可以解决吗?

谢谢


如果您想在不同的域/子域上使用 AJAX 请愿,您必须实现跨源请求。

参考:

  • http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
  • https://developer.mozilla.org/en/http_access_control

例子:

  • http://arunranga.com/examples/access-control/

您的服务器需要发送此标头:

  • 访问控制允许来源: test1.flowie.com
  • 访问控制允许凭证: true // 允许 cookie/会话凭证
  • 访问控制允许方法:获取、发布、放置、删除、选项

您可以返回访问控制允许来源全局或根据您的输入专门设置Origin($_SERVER['HTTP_ORIGIN']) 请求标头。还申请访问控制允许方法.

You must实施OPTIONS请愿。在第一次 AJAX 调用之前,现代浏览器会使用 OPTIONS 方法调用该 URL 来检索上述标头。

好的,这是第一部分,第二部分是 jQuery。仔细阅读此页:http://api.jquery.com/jQuery.ajax/

您需要为每个 AJAX 调用添加一些选项,您可以在全局范围内执行此操作:

$(document).ajaxSend(function (event, xhr, settings) {
    settings.xhrFields = {
        withCredentials: true
    };
});

或者具体:

$.ajax({
    url: a_cross_domain_url,
    xhrFields: {
        withCredentials: true
    }
});

这个问题让我输了many小时...希望有帮助。

请注意,如果您愿意,您无需将 Cookie 域设置为“.floowie.com”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery getJSON 不发送 cookie 的相关文章

随机推荐

  • NSCollectionView 与部分 - 就像在 iPhoto 中一样

    我想构建一个类似于 iPhoto 11 中的 NSCollectionView 我想将几张图片分组到部分中 并创建一个部分标题 特定节的节标题始终可见 直到该节的最后一个元素可见 你可以看看图片就明白我的意思了 编辑 我应该补充一点 内容不
  • C# 中的延迟函数

    我需要了解如何在一组命令之间创建延迟 我的背景是 C DOS 现在在 Visual Studio 2015 中使用 C 重温这些概念 这是我正在努力解决的代码 using System Threading private void butt
  • 如何在 Cloud Api Gateway 的响应正文中添加一些数据

    我正在将一些身份验证逻辑添加到云 api 网关中 我添加了网关过滤器 import java util List import org springframework cloud gateway filter GatewayFilter i
  • 我想在我的手机上安装未签名的 apk 文件。该怎么办? [关闭]

    Closed 这个问题是无关 目前不接受答案 我已经构建了一个应用程序 我通过Eclipse APK导出它 我有 APK 文件 我想将其发送给我的父亲 在另一个国家 因此无法做很多技术工作 以便他可以安装它并查看我的进度 如果没有在 Pla
  • 使用 AVFoundation 切换摄像头时视频冻结

    我制作了一个具有捕获和保存视频功能的应用程序 我为此使用了 AVFoundation苹果的AVCam一直是我的向导 我希望我能说清楚 一切工作正常 直到我第一次释放处理 AVCamCaptureManager 的 videoViewCont
  • 为什么 if 语句中的表达式顺序很重要

    假设我有一个IF健康 状况 if A B left do something 现在假设A那么更有可能获得真实值B 为什么我要关心左边哪一个 如果我把它们都放在IF括号 那么我就知道 作为代码的程序员 双方都是需要的 问题是 我的教授在他的讲
  • Laravel Eloquent 嵌套查询

    我正在使用 Laravel 并陷入了困境 我有以下型号 类别 Product 类别产品 CategoryProduct保存有关哪个产品属于哪个类别的信息 一个产品可能属于多个类别 现在 当我想加载属于特定类别的所有产品时 我需要运行查询Pr
  • 根据浏览器包含不同的 JavaScript 文件?

    我只想在浏览器不是 IE 时才包含 JavaScript 文件 有什么办法可以做到这一点吗 2022 年更新 为您提供一些选择 让您的服务器查看User Agent标头并向 Internet Explorer 发送与其他浏览器不同的 HTM
  • Android 中使用 java 的方法 Swizzling

    是否可以使用java在android中进行方法调配 我想拦截一个系统方法并记录其参数 然后正常处理它 我认为该技术不能在任何环境中使用 Java 来使用 也许您可以使用 AOP 获得类似的结果 但在 Android 上你能用它做的事情看起来
  • 对未命名临时对象的引用(生命周期)

    看完之后这个答案 from ildjarn 我写了下面的例子 看起来一个未命名的临时对象和它的引用有相同的生命周期 这怎么可能 C 标准中有规定吗 哪个版本 源代码 include
  • 从网络位数转换为网络掩码的最佳方法是什么?

    例如 如果我有一个像 172 20 10 0 24 这样的网络规范 24 就是位数 将其转换为像 0xffffff00 这样的网络掩码的最佳方法是什么 假设 32 位掩码和 32 位 int int keepBits 24 actually
  • 将多个模型的回归系数打印到共享数据框

    我知道这有点初级 基本上 我想将 coef 函数中的保存数据用于模型的共享数据框架 这些模型都从更大的共享数据集中提取有限的可能变量 我有3套14个模型 每组使用 100 个变量数据集中的 15 25 个变量 每个模型混合使用约 12 个变
  • 获取 cdk-virtual-scroller 中的静态组件引用? (参考文献已回收)

    我们最近将可滚动列表转换为 CDK Virtual Scroller Angular 7 2 12 和 Angular cdk 7 3 7 简而言之 似乎VirtualScrollViewport正在回收组件实例 而不仅仅是文档建议的模板
  • 使用带槽的 Python 描述符

    我希望能够在具有插槽优化的类中使用 python 描述符 class C object slots a a MyDescriptor a def init self val self a val 我遇到的问题是如何实现描述符类 以便能够在调
  • PHP 计算字符串中所有字母的出现次数

    我想计算字符串中所有字母出现的频率 说我有 str cdcdcdcdeeeef 我可以使用 str split 和 array count values 来实现此目的 array count values str split str 想知道
  • ColdFusion 轮函数

    今天我遇到了意想不到的行为或缺乏对 ColdFusion 9 10 11 Round 函数的了解 这是我的场景 Round 28 5 gt 预期结果为 29 Round 0 285 100 gt 结果不是预期的 28Round precis
  • 如何使用图形在多行上输出字符串

    我的程序覆盖public void paint Graphics g int x int y 为了画出一些刺痛g drawString someString x 10 y 30 现在 someString 可能会很长 因此它可能无法放在一行
  • “固定”浮动是什么意思?

    我正在查看 AVX 512 中的指令集 注意到一组fixup指示 一些examples mm512 fixupimm pd mm512 mask fixupimm pd mm512 maskz fixupimm pd mm512 fixup
  • matplotlib 极坐标图刻度/轴标签位置

    我一直在寻找一种方法来可靠地定位极坐标图中的刻度和轴标签 请看下面的例子 import numpy as np import matplotlib pyplot as plt fig plt figure figsize 10 5 ax0
  • jQuery getJSON 不发送 cookie

    我在域 1 中包含 JS 形成域 2 该脚本不会加载 并且在按钮上单击对domain2的JSONP请求 getJSON http www domain2 com process callback function data if data