मैं एक सेवा 'ए' कॉल करने के लिए $ .get बना रहा हूं। सेवा 'ए' सादा पाठ देता है जो मैं पृष्ठ पर प्रदर्शित करता हूं। लेकिन कभी-कभी यह सेवा 'बी' पर रीडायरेक्ट करता है जो सादा पाठ देता है। लेकिन, मैं सेवा 'बी' के प्रतिक्रिया पाठ को संभालने में असमर्थ हूं। मैं उसको कैसे करू?संभाल jquery AJAX रीडायरेक्ट
उत्तर
यदि सेवा बी विभिन्न डोमेन पर सुन रहा है, तो ऐसे क्रॉस-डोमेन AJAX कॉल वर्जित हैं, जब तक कि crossdomain.xml फ़ाइल इसे अनुमति न दे।
मैं साबित नहीं कर सकते, लेकिन मुझे आशा है कि इस स्क्रिप्ट एक हल करने में मार्गदर्शन कर सकते हैं:
आप अपनी स्थिति मतभेद या "a.php"
से प्रतिक्रिया के प्रत्येक प्रकार पर पाठ को साबित करने के लिए होता है$.ajax({
type: "GET",
url: "a.php",
complete: function (XMLHttpRequest, textStatus) {
if (XMLHttpRequest.status!=200) // or responseText
{
var fn = arguments.callee;
var _this = this;
setTimeout(function(){fn.call(_this, XMLHttpRequest, textStatus);}, 200);
}
else
{
//ok
}
}
});
या संपादित करें:
complete: function xCompleteFunction(XMLHttpRequest, textStatus) {
if (XMLHttpRequest.status!=200) // or responseText
{
var _this = this;
setTimeout(function(){xCompleteFunction.call(_this, XMLHttpRequest, textStatus);}, 200);
}
else
{
//ok
}
}
संपादित द्वितीय:
redirect.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title></title>
<script type="text/javascript">
$(function(){
$("#senddata").click(function(){
$.ajax({
type: "GET",
url: "a.php",
complete: function xCompleteFunction(XMLHttpRequest, textStatus) {
$("#info").append(""+XMLHttpRequest.status+"<br />"+XMLHttpRequest.responseText+"<br>");
if (XMLHttpRequest.status==301) // or responseText
{
var _this = this;
setTimeout(function(){xCompleteFunction.call(_this, XMLHttpRequest, textStatus);}, 200);
$("#info").append("waiting redirect<br>");
}
else
{
$("#info").append("redirect ok<br>");
}
}
});
});
});
</script>
</head>
<body>
<button id="senddata">send ajax request</button>
<pre id="info"></pre>
</body>
</html>
a.php:
<?php
for($a=0;$a<1000000;$a++)
{
//wait
}
header('Location: b.php');
b.php:
<?php
print "hola mundo";
महत्वपूर्ण:Status Code Definitions
मैंने इसे कॉपी करने और उपयोग करने की कोशिश की लेकिन यह काम नहीं कर रहा था। मैं ज्यादा नहीं समझ सकता। क्या आप कृपया इस कोड को समझा सकते हैं? मैं जावास्क्रिप्ट के लिए पूरी तरह से नया हूँ। – akula1001
सेवा 'ए' और 'बी' की प्रकृति क्या है? एक neater समाधान विसंगति सर्वर-पक्ष को संभालने के लिए होगा। उदाहरण के लिए, यदि सेवा ए,
<?php
if(prerequisite for display service A plain text){
echo "service a plain text";
}else{
echo "service b plaint text";
}
?>
वैकल्पिक रूप से एक PHP स्क्रिप्ट है ... अगर इन सेवाओं पाठ फ़ाइलें होती हैं, यदि आप किसी तृतीय फ़ाइल है कि निर्णय करता है हो सकता है, और सेवा ए या बी निर्भर करता है भी शामिल है। उदाहरण के लिए, इस ajax.php हो सकता है, और आप सभी मामलों में ajax.php कहेंगे:
<?php
if(prerequisite for displaying service A plain text){
echo file_get_contents("a.txt");
}else{
echo file_get_contents("b.txt");
}
?>
से यह कैसा लगता है, अपने सशर्त file_exists("a.txt")
होगा, लेकिन है कि मेरी ओर से सिर्फ एक अनुमान दिया है।
शुभकामनाएँ, और अगर आपके कोई प्रश्न हैं तो टिप्पणी करें!
नहीं, ऐसा नहीं है कि यह कैसे काम करता है। एप्लिकेशन को सीएएस के साथ एकीकृत किया गया है, इसलिए 'ए' के लिए अनुरोध सीएएस को रीडायरेक्ट का कारण बनता है जो प्रमाणित करता है और फिर 'ए' पर एक और रीडायरेक्ट करता है। मैं फ़ायरबग का उपयोग कर रीडायरेक्ट देख सकता हूं लेकिन हैंडलर में jquery में नहीं। – akula1001
आप जावास्क्रिप्ट में ऐसा नहीं कर सकते हैं। आप अपने सर्वर-साइड व्यवहार को बदल सकते हैं।
मूक (पारदर्शी) पुनर्निर्देशन XMLHttpRequest विनिर्देश का हिस्सा है (here देखें विशेष रूप से शब्द "... पारदर्शी रूप से रीडायरेक्ट का पालन करें ...")। मानक केवल तभी उल्लेख करता है कि उपयोगकर्ता एजेंट (वेब ब्राउज़र) कुछ प्रकार के स्वचालित पुनर्निर्देशन को रोक या सूचित कर सकता है, लेकिन यह XMLHttpRequest का हिस्सा नहीं है। यह HTTP क्लाइंट कॉन्फ़िगरेशन (ओएस कॉन्फ़िगरेशन) या वेब ब्राउज़र कॉन्फ़िगरेशन का हिस्सा है
- 1. jQuery $ .ajax में रीडायरेक्ट का पता लगाना?
- 2. क्या HtmlUnit जावास्क्रिप्ट रीडायरेक्ट संभाल सकता है?
- 3. jquery AJAX फ़ॉर्म - रीडायरेक्ट यूआरएल कैसे प्राप्त करें?
- 4. jQuery/AJAX
- 5. jQuery $ .ajax()
- 6. JQuery ajax
- 7. jQuery AJAX
- 8. jQuery AJAX
- 9. JQuery/AJAX
- 10. jQuery AJAX
- 11. Jquery AJAX
- 12. jquery AJAX
- 13. jquery AJAX
- 14. jQuery-Ajax
- 15. jquery AJAX
- 16. JQuery AJAX
- 17. JQuery AJAX
- 18. jQuery AJAX
- 19. AJAX/jQuery
- 20. jQuery AJAX
- 21. jQuery AJAX हैंडल 401 अनधिकृत
- 22. jQuery jQuery AJAX जेसन, php
- 23. पता लगाएं कि जहां jquery AJAX अनुरोध
- 24. jQuery: fadeout() AJAX
- 25. JVC3 JQuery Ajax
- 26. jQuery AJAX सफलता कॉलबैक
- 27. jquery AJAX फ़ंक्शन
- 28. jQuery AJAX छवि अपलोड
- 29. एक jquery AJAX कॉल
- 30. JQuery Ajax PUT विधि
मैं क्रॉस डोमेन कॉल ('ए' और 'बी' रिटर्न जेसन टेक्स्ट वास्तव में) बनाने के लिए जेसनपी का उपयोग कर रहा हूं। .. और 'ए' एक अलग डोमेन पर भी है। – akula1001
हम्म।क्या आपने ब्राउजर से आने वाले अनुरोधों का पता लगाने की कोशिश की है? – PanJanek