में नहीं भेजा गया है, मैंने एक अलग डोमेन पर jQuery के AJAX कॉल का उपयोग करके एक साधारण फ़ाइल अपलोड फ़ॉर्म सेट अप किया है। ब्राउजर के पास डोमेन के लिए एक कुकी है, और यह कुकी फ़ायरफ़ॉक्स में अनुरोध के साथ भेजी जाती है। हालांकि, कुकी क्रोम में मौजूद नहीं है, जिसके परिणामस्वरूप लॉग इन करने में विफलता है। मैंने सत्यापित किया है कि क्रोम क्रोम में मौजूद है, यह सिर्फ अनुरोध के साथ नहीं भेजा गया है।क्रोम कुकी को क्रोम
AJAX कॉल: इनमें से कुछ आवश्यक नहीं हो सकता है। इसे संबंधित समाधानों का प्रयास जोड़ा गया था और उन प्रयासों को प्रदर्शित करने के लिए छोड़ दिया गया था।
<head>
<script src="jquery-2.1.1.min.js"></script>
</head>
<form enctype="multipart/form-data" id="file" method="POST">
<input name="file" type="file" />
<input name="Submit" type="button" id="upload"/>
</form>
<script type="text/javascript">
$.support.cors = true
$('input#upload').click(function(){
var formData = new FormData($('form#file')[0]);
.ajax({
url: 'http://accounts.mysite.dev/file/saveasset',
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
xhrFields: {
withCredentials: true
},
crossDomain: true
});
});
</script>
फ़ायरफ़ॉक्स सही हेडर भेजता है, उपयोगकर्ता की कुकी सहित
POST /file/saveasset HTTP/1.1
Host: accounts.mysite.dev
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://phptest/htmltest/fileUpload.html
Content-Length: 8032
Content-Type: multipart/form-data; boundary=---------------------------4450073521062221055385143281
Origin: http://phptest
Cookie: Accounts=somecookiestuff
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
लेकिन क्रोम नहीं
POST /file/saveasset HTTP/1.1
Host: accounts.mysite.dev
Content-Length: 7981
Accept: */*
Origin: http://phptest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGyMYxvKgEKWfBR5x
Referer: http://phptest/htmltest/fileUpload.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
मुझे विश्वास है कि सर्वर सेटअप सही ढंग से है इस मूल और साख अनुमति देने के लिए , लेकिन वे क्रोम के अनुरोध में भी नहीं भेजे गए हैं। मामले में यह प्रासंगिक है, अपने सर्वर (php डब्ल्यू/Zend) सेट
$this->_response->setHeader('Access-Control-Allow-Origin', 'http://phptest');
$this->_response->setHeader('Access-Control-Allow-Credentials', 'true');
मैं सर्वर पर किसी भी विकल्प preflight अनुरोध नहीं दिख रहा।
क्रोम मेरी कुकी क्यों भेज रहा है?
आप एफएफ में सेट किए जा रहे क्रोम में कौन सी कुकी देखने की उम्मीद कर रहे हैं? दोनों अनुरोधों में 'उत्पत्ति' हेडर है। – Palpatim
कुकी हेडर। –