Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery跨域发送Cookie,使用MVC托管。故障排除清单?_Jquery_Ajax_Asp.net Mvc_Cookies_Cross Domain - Fatal编程技术网

使用jQuery跨域发送Cookie,使用MVC托管。故障排除清单?

使用jQuery跨域发送Cookie,使用MVC托管。故障排除清单?,jquery,ajax,asp.net-mvc,cookies,cross-domain,Jquery,Ajax,Asp.net Mvc,Cookies,Cross Domain,为了寻求帮助,我在网上查了几乎所有的东西,我不明白为什么它对我不起作用。我正在做一个非常精简的概念证明,但我认为它应该有效,但我怀疑我遗漏了一些明显的东西,只是不够聪明,看不到它我已将http更改为hxxp,因为堆栈交换不允许我发布此问题。 浏览器正在连接到域1。MVC正在提供一个页面。此原始响应带有以下标题请注意设置Cookie行: HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Var

为了寻求帮助,我在网上查了几乎所有的东西,我不明白为什么它对我不起作用。我正在做一个非常精简的概念证明,但我认为它应该有效,但我怀疑我遗漏了一些明显的东西,只是不够聪明,看不到它我已将http更改为hxxp,因为堆栈交换不允许我发布此问题。

浏览器正在连接到域1。MVC正在提供一个页面。此原始响应带有以下标题请注意设置Cookie行:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: Original=Chocolate; path=/
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcZWNhbXBvc1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDE1XFByb2plY3RzXENvb2tpZVRyYWRlQVxDb29raWVUcmFkZUE=?=
X-Powered-By: ASP.NET
Origin: http://orghost:54605
Date: Tue, 02 May 2017 21:08:19 GMT
Transfer-Encoding: chunked
所提供的页面只有一个按钮,我有jQuery代码来发送Ajax GET。脚本如下所示:

$(function () {
    $('#btnCORS').click(function () {
        $.support.cors = true;

        var request = $.ajax({
            type: 'GET',
            url: 'hxxp://duplihost:54614/Ajax/Ping',
            contentType: "application/json",
            dataType: 'json',
            crossDomain: true,
            xhrFields: { withCredentials: true },
            success: function (response) {
                alert('Success');
            },
            error: function(xhr, status) {
                alert('Error');
            }
        });
    });
});
当我点击按钮时,我注意到Fiddler的流量。首先是飞行前:

请求

OPTIONS hxxp://duplihost:54614/Ajax/Ping HTTP/1.1
Host: duplihost:54614
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: hxxp://orghost:54605
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36
Access-Control-Request-Headers: content-type
Accept: */*
Referer: hxxp://orghost:54605/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
回应

HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/10.0
Public: OPTIONS, TRACE, GET, HEAD, POST
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcZWNhbXBvc1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDE1XFByb2plY3RzXENvb2tpZVRyYWRlQlxDb29raWVUcmFkZUJcQWpheFxQaW5n?=
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: hxxp://orghost:54605
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, *
Date: Tue, 02 May 2017 20:59:52 GMT
Content-Length: 0
然后是实际通话请注意此处没有预期的“cookie”行。

请求:

GET hxxp://duplihost:54614/Ajax/Ping HTTP/1.1
Host: duplihost:54614
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
Origin: hxxp://orghost:54605
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36
Content-Type: application/json
Referer: hxxp://orghost:54605/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
答复:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcZWNhbXBvc1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDE1XFByb2plY3RzXENvb2tpZVRyYWRlQlxDb29raWVUcmFkZUJcQWpheFxQaW5n?=
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: hxxp://orghost:54605
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, *
Date: Tue, 02 May 2017 20:59:54 GMT
Content-Length: 15
我已经在这方面工作了好几天,我在网上找到的所有东西似乎都让我陷入了圈套,最终验证了我确信正在做的事情。我确信我已经设置好了CORS头文件。我确信我在ajax调用中使用了“withCredentials”


最后,我希望duplihost的Ajax控制器中的Ping处理程序能够看到有一个名为Original的orghost cookie,它被设置为Chocolate。非常感谢您的帮助。

您正在测试哪些浏览器?您是否在所有浏览器中都看到相同的行为?在您测试的浏览器中是否禁用了第三方cookie?到目前为止,Chrome、Firefox和IE 11似乎都不起作用。他们都没有禁用第三方cookie。告诉我他们工作正常。