है, मैं फ़ायरफ़ॉक्स के अलावा ब्राउज़र के साथ संगतता सुनिश्चित करने के लिए jQuery का उपयोग करने के लिए जावास्क्रिप्ट/php/AJAX एप्लिकेशन को परिवर्तित कर रहा हूं।jQuery AJAX का उपयोग कर सर्वर पर शून्य पास नहीं कर सकता। सर्वर पर प्राप्त मान स्ट्रिंग "नल"
मुझे jQuery के AJAX फ़ंक्शन का उपयोग करके सत्य, झूठे और शून्य मानों को पार करने में समस्या हो रही है।
Javascript कोड:
$.ajax
(
{
url : <server_url>,
dataType: 'json',
type : 'POST',
success : receiveAjaxMessage,
data:
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
}
);
PHP कोड:
var_dump($_POST);
सर्वर उत्पादन:
array(3) {
["valueTrue"]=>
string(4) "true"
["valueFalse"]=>
string(5) "false"
["valueNull"]=>
string(4) "null"
}
समस्या है कि अशक्त, सच है, और झूठे मूल्यों में बदल किया जा रहा है तार।
वर्तमान में उपयोग में जावास्क्रिप्ट AJAX कोड शून्य, सत्य और गलत तरीके से गुजरता है लेकिन केवल फ़ायरफ़ॉक्स में काम करता है।
क्या कोई जानता है कि jQuery का उपयोग करके इस समस्या को कैसे हल किया जाए?
यहाँ कुछ काम कर कोड (jQuery का उपयोग नहीं) ऊपर दिए गए नहीं काम कोड के साथ तुलना करने के लिए है।
जावास्क्रिप्ट कोड:
ajaxPort.send
(
<server_url>,
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
);
PHP कोड:
var_dump(json_decode(file_get_contents('php://input'), true));
सर्वर उत्पादन:
array(3) {
["valueTrue"]=>
bool(true)
["valueFalse"]=>
bool(false)
["valueNull"]=>
NULL
}
ध्यान दें कि अशक्त, सच है, और झूठे मान सही ढंग से प्राप्त कर रहे हैं।
ध्यान दें कि दूसरी विधि में $ 2_POST सरणी PHP कोड में उपयोग नहीं की जाती है। मुझे लगता है कि यह समस्या की कुंजी है, लेकिन मुझे jQuery का उपयोग करके इस व्यवहार को दोहराने का कोई तरीका नहीं मिल रहा है।
यह खंड नीचे स्वीकार कर लिया गया जवाब के बाद जोड़ा गया है।
यहां मूल कोड का एक सही संस्करण है।
Javascript कोड:
$.ajax
(
{
url : <server_url>,
dataType: 'json',
type : 'POST',
success : receiveAjaxMessage,
data : JSON.stringify
(
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
)
}
);
PHP कोड:
var_dump(json_decode(file_get_contents('php://input'), true));
सर्वर उत्पादन:
array(3) {
["valueTrue"]=>
bool(true)
["valueFalse"]=>
bool(false)
["valueNull"]=>
NULL
}
मैं गलत हो सकता हूं लेकिन क्या आपका डेटा वैध JSON है? क्या सभी कुंजी/मानों को "" में संलग्न नहीं किया जाना चाहिए? यह आपकी समस्या का समाधान नहीं कर सकता है, लेकिन यदि आप अपना डेटा स्ट्रिंग करते हैं और शून्य मान के लिए बस खाली स्ट्रिंग पास करते हैं तो मुझे लगता है कि यह काम कर सकता है? मुझे लगता है कि jquery आपके डेटा को "" में लपेट रहा है, इसलिए सर्वर पर जो वैल्यू आप भेज रहे हैं वह एक स्ट्रिंग है जिसमें पाठ शून्य है, जैसे: "शून्य"। – DannyLane
डैनी का जवाब देने के लिए धन्यवाद, लेकिन मुझे यकीन है कि जेएसओएन में सत्य, झूठी और शून्य का उपयोग नहीं किया जा सकता है। Www.json.org देखें। – Tom
आप शायद सही थे, लेकिन मैंने आपको गलत समझा। जावास्क्रिप्ट पक्ष में डेटा को स्ट्रिंग करने से समस्या हल हो गई। – Tom