2015-03-11 12 views
7

मैं की तरह

$.ajax({ 
    url   : 'http://example.com/somepage', 
    type  : 'get', 
    crossDomain : true, 
    xhrFields : { withCredentials: true }, 
    success  : function(data) { 
     // do something with data 
    } 
}); 

और vhost conf

SetEnvIfNoCase ORIGIN (.*) ORIGIN=$1 
Header set Access-Control-Allow-Origin "%{ORIGIN}e" 
Header set Access-Control-Allow-Methods "post, get, put, options, patch, delete" 
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
Header set Access-Control-Max-Age "60" 
Header set Access-Control-Allow-Credentials true 

पर सर्वर साइड एक crossdomain $ .ajax कॉल सेटअप हो रही है पर 302 पुनर्निर्देशन इस काम कर रहा है ठीक है जब तक कि मेरे http://example.com/somepage किसी अन्य पृष्ठ http://example.com/someotherpage पर 302 कोड के साथ रीडायरेक्ट कर रहा है, इस मामले में, एफएफ, क्रोम & ओपेरा & रीडायरेक्ट किए गए पृष्ठ से डेटा लौट रहा है, लेकिन सफारी नहीं, मैं पुनर्निर्देशन (सफारी कंसोल) देख सकता हूं लेकिन टी पुनर्निर्देशन के बाद वह दूसरा कॉल निरस्त कर दिया गया है।

कोई विचार?

+2

मैं इस तरह के किसी मुद्दे के माध्यम से सॉर्ट कर रहा हूं। समस्या सफारी एजेक्स व्युत्पन्न रीडायरेक्ट को बाहरी साइट पर फ़ॉलो करने से इंकार कर रही है।यदि आप सीधे एंडपॉइंट हिट करते हैं (जिसे रीडायरेक्ट देना चाहिए) तो यह संभवतः ठीक काम करेगा। अभी तक आपके लिए कोई वास्तविक जवाब नहीं है। मैं संभवतः 200 में अपनी प्रतिक्रिया को शरीर में बदलने के लिए बदल रहा हूं जो सामने के अंत को खिड़की के माध्यम से एम्बेडेड यूआरएल पर रीडायरेक्ट करने के लिए कहता है। स्थान कॉल। –

+6

बेवकूफ सफारी ... क्लासिक ऐप्पल मानसिकता। "क्रॉस-डोमेन? कोई भी कभी भी Apple.com के अलावा कहीं और क्यों नहीं बनना चाहता ???" –

+1

हां, मुझे अभी यह समस्या है! यह मुझे मार रहा है। मेरा मुद्दा यहां: http://stackoverflow.com/questions/33044293/xhr-ajax-requests-w-redirect-fails-w-invalidstateerror-dom-exception-11 – hrdwdmrbl

उत्तर

1

यह एक टिप्पणी होनी चाहिए लेकिन मैं टिप्पणी नहीं कर सकता। मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।

कुछ समय पहले हमें सफारी में सीओआरएस उपयोग के कारण पुनर्निर्देशन के साथ कुछ समस्याएं थीं।

सफारी अनुरोध बंद कर देता है क्योंकि यह पहले से ही पूर्व-उड़ान अनुरोध करता है और शायद कॉन्फ़िगर पर्याप्त/पर्याप्त नहीं है।

मैं (यह हमारे लिए काम किया) निम्नलिखित की कोशिश करेंगे:

supportedHeaders: pageSuccess, pageError, pageLogin, उत्पत्ति, स्वीकार करें-भाषा, Accept-Encoding

supportedMethods: मिलता है, पोस्ट, प्रमुख, PUT,, हटाएं विकल्प

exposedHeaders: pageSuccess, pageError, pageLogin

सबडोमेन, समर्थित प्रमाण-पत्रों की अनुमति दें और जेनेरिक http अनुरोधों को सत्य पर सेट करने की अनुमति दें।

हम हेडर ErrorPage या SuccesPage और जब इन प्रतिक्रिया हम उन्हें jqXHR.getResponseHeader ('erroPage') का उपयोग कर पाने पर उपस्थित थे तरह की सही/गलत मूल्यों (exposedHeaders और supportedHeaders देखें) देने में कुछ अन्य जानकारी से अवगत कराया पुनर्निर्देशन करने के लिए।

सादर:

यहाँ आप उपयोगी लिंक की एक जोड़ी मिल जाएगा।

Ps। आप कॉन्फ़िगरेशन लगभग हमारे जैसा ही प्रतीत होता है। समर्थित हेडर्स पर केवल अंतर हैं (और निश्चित रूप से एक्सपोज़ेड हेडर विशेष रूप से हमारे मामले के लिए जोड़े गए हैं)

संबंधित मुद्दे