2012-05-07 13 views
7

त्रुटि देता है, मैं jQuery के साथ कुल शुरुआतकर्ता हूं और अब मैं अटक गया हूं। मैं अपने एचटीएमएल फॉर्म से डेटा को एक php में भेजना चाहता हूं, यह डेटा को डेटाबेस में जोड़ता है और कुछ वैल्यू देता है जिसे मैं अपने मूल HTML पर प्रदर्शित करना चाहता हूं।jQuery AJAX फ़ंक्शन ईमानदार होने के लिए

$.ajax({ 
    type: "POST", 
    url: "http://mysite.com/process.php", 
    data: { data: mydata }, 
    cache: false, 
    dataType: "text", 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR.status); 
     alert(jqXHR.statusText); 
     alert(jqXHR.responseText); 
    }, 
    success: function(data){ 
     getContentBox().innerHTML = data; 
} 
}); 

यह status = 0, statusText = "error" और खाली responseText के साथ एक jqXHR ऑब्जेक्ट: यहाँ मेरी कोड है। हालांकि, मेरा PHP काम करता प्रतीत होता है, मैं अपने डीबी में अपना डेटा डाला देखता हूं। मैं क्या गलत कर रहा हूं?

किसी भी मदद की सराहना की जाएगी। अग्रिम धन्यवाद!

संपादित करें: क्रोम कंसोल कहता है XMLHttpRequest http://mysite.com/data.php लोड नहीं कर सकता है। एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिन द्वारा उत्पत्ति http://www.mysite.com की अनुमति नहीं है।

+0

आपकी PHP स्क्रिप्ट किस शीर्षलेख भेजता है? क्या उत्पादन? – Fender

+0

क्या आपने फायरबग या किसी अन्य टूल में अनुरोध/प्रतिक्रिया देखी है? –

+0

PHP बस टेक्स्ट को मुद्रित करता है ($ डेटा प्रिंट करें;)। बस क्रोम के साथ अनुरोध को देखा: स्थिति पाठ: (रद्द) टाइप: एप्लिकेशन/एक्स-www-form-urlencoded; charset = UTF-8 – nXu

उत्तर

1

शेल्बीज़ की टिप्पणी ने मुझे समाधान के लिए प्रेरित किया:

ब्राउज़र ने पूर्ण URL का उपयोग करने का प्रयास करते समय अनुरोध निष्पादित करने से इनकार कर दिया, मुझे इसे सापेक्ष के रूप में लिखना पड़ा।

$.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: { data: mydata }, 
    cache: false, 
    dataType: "text", 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR.status); 
     alert(jqXHR.statusText); 
     alert(jqXHR.responseText); 
    }, 
    success: function(data){ 
     getContentBox().innerHTML = data; 
} 
}); 

धन्यवाद!

0

प्रयास करें इस (यदि आप एक ब्रैकेट बंद करने के लिए भूल गया):

$.ajax({ 
    ... 
    success: function(data){ 
    getContentBox().innerHTML = data; 
    } 
}); 
+0

एर्ग, सच है, मेरी स्क्रिप्ट में यह है, यह सिर्फ एक कॉपी-पेस्ट त्रुटि है। धन्यवाद था। – nXu

0

क्यों यानी

  $.post('http://mysite.com/process.php', mydata, function(data) { 
       if (data.status == 1) { 
        getContentBox().html() = data; 
       } else { 
        alert(data.status); 
        alert(data.statusText); 
        alert(data.responseText); 
       } 
      }); 

im यकीन नहीं आसान बनाने के लिए jQuery के पद समारोह में बनाया का उपयोग नहीं क्या अपनी स्थिति प्रतिक्रियाएं इसलिए आपको इसे संपादित करना पड़ सकता है लेकिन यह काम करेगा यदि आप इसे $('form here').submit(function() {POSTCODEHERE});

0

मुझे एक ही समस्या थी। <form> के अंदर अजाक्स फ़ंक्शन बटन (प्रकार = "सबमिट") से जुड़ा हुआ था, इसलिए जब मैंने यह बटन दबाया तो मेरा पृष्ठ पुनः लोड हो गया और error फ़ंक्शन success के बजाय काम किया। मैं वास्तव में नहीं जानता कि यह कैसे संबंधित है लेकिन जब मैं event.preventDefault() बटन बटन एक्शन श्रोता में जोड़ता हूं और यह ठीक काम कर रहा है।