अजाक्स जीईटी अनुरोध ठीक से काम कर रहे हैं। लेकिन मुझे POST का उपयोग करना है क्योंकि मुझे बड़ी मात्रा में डेटा भेजने की उम्मीद है, जीईटी के लिए बहुत अधिक है।AJAX, ठीक है, पोस्ट नहीं
पर्यावरण: अपाचे 2, डेबियन 9 (स्क्रैच से), jQuery 3.2.1, कुछ खास नहीं।
मैं इस कोड को अपनी समस्या नीचे छीन लिया:
ग्राहक
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Ajaxtest</title>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
</head>
<body>
<script language="JavaScript">
<!--
$.ajax({
url: 'ajaxtest2.php',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'POST',
data: {testdata: 'here I am'},
success: function (resp) {
console.log(resp);
},
});
-->
</script>
</body>
</html>
सर्वर
<?php
ini_set('error_reporting', E_ERROR);
header('Content-type: application/json');
header('HTTP/1.1 200 OK');
print json_encode(
array(
'method'=>$_SERVER['REQUEST_METHOD'],
'get'=>$_GET['testdata'],
'post'=>$_POST['testdata'])
);
exit();
?>
प्राप्त के माध्यम से ajax कॉल भेजने जब मैं केवल बदल
type: 'POST'
type: 'GET'
कौन सा मुझे कंसोल पर इस परिणाम देता है:
{method: "GET", get: "here I am", post: null}
ये कुछ बातें होती है।
लेकिन जब पोस्ट के माध्यम से बुला रहा मिलती है:
{method: "POST", get: null, post: null}
सर्वर एक पोस्ट अनुरोध को समझता है, लेकिन किसी भी मूल्यों वितरित नहीं करता है।
मैं के रूप में एक ही परिणाम
url: 'ajaxtest2.php'
url: './ajaxtest2.php'
url: './ajaxtest2.php/'
साथ कुछ लोगों द्वारा की सलाह दी लक्ष्य यूआरएल सहित के विभिन्न तरीकों की कोशिश की वे सब कोई फर्क: $ _POST रहता है खाली।
इसके अलावा, मैं get_defined_vars() सर्वर पर है, लेकिन $ _POST रहता खाली लॉग इन और वहाँ फेंक दिया चर में कहीं भी की 'यहाँ मैं कर रहा हूँ' कोई निशान है।
यूआरएल पुनर्लेखन या इसी तरह के साथ कोई htaccess mingling नहीं है।
मैं और क्या कर सकता हूं?
क्या आपके * ब्राउज़र * करता है कहते हैं कि यह (नेटवर्क टैब पर) भेज रहा है। –
एक परीक्षण के लिए, टिप्पणी करें 'सामग्री टाइप करें:' एप्लिकेशन/जेसन; charset = utf-8'' और POST परीक्षण फिर से प्रयास करें। – IncredibleHat
php में '$ _REQUEST ['testdata']' output क्या करता है? – skobaljic