当前位置: 首页 > 面试题库 >

跨域POST请求未发送cookie Ajax Jquery

金宣
2023-03-14
问题内容

似乎已经在stackoverflow上讨论过类似的内容,但是我找不到完全一样的东西。

我正在尝试发送带有CORS(跨源资源共享)的Cookie,但无法正常工作。

这是我的代码。

$.ajax(
    { 
      type: "POST",
      url: "http://example.com/api/getlist.json",
      dataType: 'json',
      xhrFields: {
           withCredentials: true
      },
      crossDomain: true,
      beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
      },
      success: function(){
           alert('success');
      },
      error: function (xhr) {
             alert(xhr.responseText);
      }
    }
);

我在请求HEADER中看不到此Cookie。


问题答案:

您无法通过JavaScript在CORS请求上设置或读取Cookie。尽管CORS允许跨域请求,但cookie仍然受浏览器的同源策略约束,这意味着只有来自相同来源的页面才能读取/写入cookie。withCredentials仅表示将远程主机设置的任何cookie发送到该远程主机。您将必须使用Set- Cookie标头从远程服务器设置cookie 。



 类似资料:
  • 问题内容: 如何通过JavaScript发送跨域POST请求? 注意-它不应该刷新页面,之后我需要抓取并解析响应。 问题答案: 如果你控制要发布的服务器,只需在服务器上设置响应头即可利用“跨域资源共享标准”。此答案在该主题的其他答案中进行了讨论,但我认为不是很清楚。 简而言之,这里是如何完成从from.com/1.html到to.com/postHere.php的跨域POST(以PHP为例)。注意

  • 问题内容: 我正在使用PhoneGap和JavaScript来生成iPhone应用程序。是否可以发送跨域AJAX(POST)请求并将响应下载为HTML?(例如:登录yahoo邮件并提取新邮件) 问题答案: Cordova / PhoneGap允许将域列入白名单。只要您请求的服务器在白名单中即可。

  • 请求方式: "|3|2|url,content|\r" 参数: url 设置Post请求的url链接 content post请求的数据 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: sof

  • 我正在使用RestTemboard使用Web服务,我的POST请求如下。 我试着打印我的requestBodyJsonObject并将其放入rest客户机,它工作正常,所以请求主体没有问题。但在这里,我并没有得到预期的结果,只是在没有rest客户端的请求主体的情况下发送post请求时得到了结果。 所以我在这里一无所知。非常感谢您的帮助。

  • 在浏览器的沙箱环境下,默认只允许js代码请求其所属域的数据,不同域名/ip/协议,都默认禁止. 跨域所需要的是,是响应浏览器发起的OPTIONS,及真正的GET/POST, 共2个请求哦. 所需要的逻辑CrossOriginFilter已经封装好了 如何解决 nutz给出的方案非常简单,仅需要在入口方法上添加CrossOriginFilter即可 @Filters(@By(type=CrossO

  • 跨域请求 如果某个路由或者分组需要支持跨域请求,可以使用 Route::get('new/:id', 'News/read') ->ext('html') ->allowCrossDomain(); 跨域请求一般会发送一条OPTIONS的请求,一旦设置了跨域请求的话,不需要自己定义OPTIONS请求的路由,系统会自动加上。 跨域请求系统会默认带上一些Header,包括: Acces