post method problem

ms000

New Member
سلام دوستان
از اینکه وقتتون رو می گیرم عذر می خوام
من یه کد ای جکس نوشتم (اگه عجیب بود ببخشید من زیاد بلد نیستم) که در ظاهر مشکلی نداره با متد پست کار می کنه خیلی هم خوبه فقط یه ایراد جالب داره که من هرچی گشتم جوابی براش پیدا نکردم و اون اینکه اگه متنی که بهش می دین بیشتر از یه حدی باشه مثلا 100 کیلو بایت یه ارور جالب میده
permission denied
البته در ابتدای خط 39 که من هر کاری کردم نتونستم درستش کنم البته یه حدثایی می زنم ولی راهی براش ندارم
حدث من اینه که درسته که ما داریم کد رو پست می فرستیم ولی در واقع کد هم پست ارسال می شه و هم گت با توجه به کد زیر که این به این مفهوم که حجم اطلاعات ارسالی محدود هست آیا شما نظری دارین ممنون میشم از پاسخ هاتون

index.php file
<html>
<head>
<title>Ajax Demonstration</title>
<style>
.displaybox {
width:150px;
background-color:#ffffff;
border:2px solid #000000;
padding:10px;
font:24px normal verdana, helvetica, arial, sans-serif;
}
</style>
<script language="JavaScript" type="text/javascript">
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

var http = getXMLHTTPRequest();

function getServerTime(myurl,parameters) {

myRand = parseInt(Math.random()*999999999999999);
myRand=1;
txt=document.getElementById('txt').value;
var modurl = myurl+"?rand="+myRand+"&txt="+txt;
http.open("POST", modurl, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", parameters.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = useHttpResponse;
http.send(parameters);
}

function useHttpResponse() {
if (http.readyState == 4) {
if(http.status == 200) {
document.getElementById('msg1').innerHTML = http.responseText;
}
} else {
document.getElementById('msg1').innerHTML = '<img src="anim.gif">';
}
}

function get(obj) {
var poststr = "txt=" + encodeURI( document.getElementById("txt").value);
getServerTime('post.php',poststr);
}


</script>
</head>
<body style="background-color:#cccccc">
<center>
<h1>Ajax Demonstration</h1>
<h2>Getting the server time without page refresh</h2>
<div id="msg1"></div>
<div id="showtime" class="displaybox"><form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
<textarea name=txt id=txt></textarea>
<input type="button" value="Get Server Time" onclick="get(document.getElementById('myform'))">
</form>
</div>
</center>
</body>
</html>


post.php file
<?php
print_r($_POST);
print_r($_GET);
?>
 
دوست عزیز
مشكل شما اینجاست :
کد:
var modurl = myurl+"?rand="+myRand+"&txt="+txt;
با تبدیل اون به این حل میشه :
کد:
var modurl = myurl;
كدی روكه استفاده می كردید احتمالا برای get نوشته شده بوده برای همین هر بار به url یك عدد random اضافه میكردند تا سرور صفحه رو كش نكنه و در ضمن وقتی شما با URL مقادیری رو با ? اضافه میكنید ajax به صورت اتوماتیك اون مقادیر رو با get میفرسته
همین باعث بوجود اومدن مشكل برای شما شده
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا