मेरी PHP स्क्रिप्ट पर मान भेजे जाने के बाद मैं पुनर्निर्देशन प्राप्त करने का प्रयास कर रहा हूं। स्क्रिप्ट को सही ढंग से भेजा गया मान लेकिन फ़ायरफ़ॉक्स में रीडायरेक्ट काम नहीं कर रहा है, क्रोम में यह भी ठीक काम कर रहा है।

यह कोड का टुकड़ा है जहां मैं रीडायरेक्ट करता हूं।

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var response = xmlhttp.responseText;
            // Show a thank you message
            var theLanguage = $('html').attr("lang");
            if (theLanguage == "nl-NL") {
              url = "/Thanks/";
              $(location).attr("href", url);
            }
            else if (theLanguage == "fr-FR") {
              url = "/fr/merci/";
              $(location).attr("href", url);
            }
            else {
              url = "/en/thanks/";
              $(location).attr("href", url);
            }
        }

क्या कोई मुझे बता सकता है कि ऐसा करने का बेहतर तरीका क्या है जो क्रॉस ब्राउज़र संगत है?

धन्यवाद

0
Zain 25 अक्टूबर 2019, 16:51
फ़ायरफ़ॉक्स में कोई कंसोल संदेश? इसके अलावा ifs के बाहर केवल एक location.href=url; है। क्रोम की तुलना में console.log($('html').attr("lang")); आपको Firefox में क्या बताता है?
 – 
mplungjan
25 अक्टूबर 2019, 16:53
कैसे location.href = url; के बारे में - jQuery के साथ इसे करने (प्रयास करने) का कोई कारण नहीं है।
 – 
Pointy
25 अक्टूबर 2019, 16:54
मैंने भी यह कोशिश की .. वही मुद्दा
 – 
Zain
25 अक्टूबर 2019, 16:55
मैं <html> तत्व से "लैंग" विशेषता प्राप्त करने की कोशिश करने के बजाय navigator.language का भी उपयोग करूंगा।
 – 
Pointy
25 अक्टूबर 2019, 16:57
1
क्रोम की तुलना में console.log($('html').attr("lang")) आपको Firefox में क्या बताता है?
 – 
mplungjan
25 अक्टूबर 2019, 17:01

2 जवाब

क्यों न सिर्फ फॉर्म जमा करें और सर्वर से रीडायरेक्ट करें?

अगर आप ऐसा नहीं कर सकते, तो

  1. jQuery का प्रयोग करें क्योंकि आपके पास यह है
  2. फ़ॉर्म सबमिट न करने के लिए सबमिट ईवेंट पर रोकेंडिफॉल्ट

आपको अपने xmlhttprequest के बजाय इसकी आवश्यकता होने की संभावना है। रोकथाम पर ध्यान देंडिफॉल्ट

$(function() {
  $("#yourFormId").on("submit", function(e) {
    e.preventDefault(); // stop the submission
    $.ajax({
      type: 'post',
      url: 'yourserverproces.php', // this.action will work if the form has an action
      data: $(this).serialize(),
      success: function(response) {
        // Show a thank you message
        var theLanguage = $('html').attr("lang"),
          url = "/en/thanks/";
        if (theLanguage == "nl-NL") {
          url = "/Thanks/";
        } else if (theLanguage == "fr-FR") {
          url = "/fr/merci/";
        }
        location.href = url;
      },
      error: function(xhr, textStatus, error){
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
      }
    });
  });
});
0
mplungjan 25 अक्टूबर 2019, 17:29

location.href = "url" को काम करना चाहिए, लेकिन अगर इससे आपको बहुत अधिक समस्याएं आती हैं, तो आप window.location.assign("url") का उपयोग करके भी देख सकते हैं।

-2
Yohio 25 अक्टूबर 2019, 16:57