ماذا يجب ان تكون الـ Content-Type لو اردت ارسال فقط بارامترات عادية في الـ POST request مثل:
"foo=this_is_foo&bar=this_is_bar"
في XML HTTP ؟
السلام عليكم ورحمة الله
ماذا يجب ان تكون الـ Content-Type لو اردت ارسال فقط بارامترات عادية في الـ POST request مثل:
"foo=this_is_foo&bar=this_is_bar"
في XML HTTP ؟
السلام عليكم ورحمة الله
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
جربت الاثنين يا باشمهندس سلفاً قبل طرح السؤال دون فائدة.
لم اعد اعلم هل الكود الذي كتبته فيه غلط ام ماذا..
<script>
// stuff here works fine
function xmlhttp() {var obj;var xml = new Array();xml[0] = "MSXML2.XMLHTTP.5.0";xml[1] = "MSXML2.XMLHTTP.4.0";xml[2] = "MSXML2.XMLHTTP.3.0";xml[3] = "MSXML2.XMLHTTP";xml[4] = "Microsoft.XMLHTTP";xml[5] = "WinHttp.WinHttpRequest.5";xml[6] = "WinHttp.WinHttpRequest.5.1";if (window.ActiveXObject) {for (var i=0; i<xml.length; i++){try {obj = new ActiveXObject(xml);break;} catch(e) {obj = null;}}} else if (window.XMLHttpRequest) {try {obj = new XMLHttpRequest();} catch(e) {obj = null;}}return obj;}
// GET request works fine
var req = xmlhttp();
req.open("GET", "http://www.site.com/?do=GiveID",true);
req.onreadystatechange = function()
{
if (req.readyState==4)
{
// ID is returned correctly
var id = req.responseText;
// problem with the POST
req.open("POST","http://www.site.com/",true);
req.onreadystatechange = function()
{
if (req.readyState==4)
{
// not executed
alert("done");
}
req.setRequestParams("Content-Type","text/html");
req.send("do=GiveInfo&id="+id);
}
}
}
req.send(null);
</script>فما رأيك به :(
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لو عايز تعمل POST بالAjax فالعملية بسيطة انظر الكود التالى ( :P ومتقوليش عدلة عشان يمشى مع IE باشا ) :-
request = new XMLHttpRequest();
request.open("POST", url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", parameters.length);
request.setRequestHeader("Connection", "close");
request.onreadystatechange=ChangeBag;
request.send(this.params);بس سينجح عن تجربة
و شىء أخير موضوع الHttp Headers فى الPHP خلص على اية :unsure:
تم تعديل هذه المشاركة بواسطة ASDen في 29 سبتمبر 2007 في 22:39
السلام عليكم ورحمة الله,
جربت ما ذكرت لكن حصلت على permission denied رغم ان السكربت على نفس الموقع :(
ما السبب لاني قرات عن المشكلة فقط عندما تكون على موقع اخر..
وبالنسبة لموضوع الـ PHP فقد توقفت عنه قليلا ريثما انهي هذا الذي بين يدي فهو المفتاح لبقية العمل :)
شكرا على المساعدة.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
هناك خطأ فى الكود الى أنا كتبتة معرفش هو المشكلة ولا لأ هو شىء بسيط جدا
params بدلا من this.params فى الsend نسيت أصلحة
ولو كنت صلحتها و فهل
طب و على الLocal Host
لو مرديش على الLocal Host يبقى المشكلة فى الPHP ياريت تحطة أما لو اشتغل يبقى نفكر تانى
تم تعديل هذه المشاركة بواسطة ASDen في 1 أكتوبر 2007 في 03:35
نعم قمت بتعديلها وحتى اني اختبرت الحالتين, حتى السطر الخاص بـ
request.setRequestHeader("Content-length", parameters.length);قمت بتعديل parameters الى params ووضعت متغير باسم param ليضم المراد ارساله
وسطر: onreadystatechange=ChangeBag; لم استخدمه في البداية ثم قلت لعلي مخطئ بشأنه فعدت واستخدمته.
permission denied / :
بالمناسبة, ليس هناك PHP على الاطلاق, هذا XSS اقوم بكتابته فيه AJAX + JS فقط كما ترى :)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
نعم متأكد لاني لا ارسل بيانات الى خارج الموقع وانما اقوم بجعل الزائر يقوم بارسال بياناته الى مجلد خاص بي (لنقل الرسائل الخاصة) على نفس الموقع :)
هذا الموقع الذي تتحدث عنه وقعت عليه اثناء بحثي عن حل لمشكلة كنت واجهتها في سكربت اخر كان يحتاج الى ارسال بيانات الى الخارج, هل هذا هو الحل الوحيد لاني لا ارى "طبعا عن غير تجربة" انه سيعمل على IE ايضا / :
باي حال ساختبره في اقرب فرصة لاني "crash and burn" من التعب
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
فى هذة الحالة ممكن يكون المجلد مقفول بالhtaccess مثلا أو ممنوع من الدخول بأى طريقة أخرى
يمنع الـ POST الى مكان يستقبل الـ POST بشكل عادي!! كيف؟
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
وهل هو فعلا بيستقبل POST عادى أعنى جربت Live Http Headers مثلا
أيضا ربما هو بيشوف انت جايلة منين بمعنى هل انت Authorized انك تعمل POST ويرد عليك أم لا
طبعا جربت, والـ ajax session بيحمل الـ authentication لذلك انا افضل استخدامه بدلا من الـ js فقط لانه يكون بامكاني تنفيذ الامر الذي اريد ويظهر للموقع المصاب بانه يأتي من شخص آخر يستعرض تلك الثغرة في متصفحه.
لا زلت اشعر بوجود خطب ما في الأمر لكني لا اعلم ما هو.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
طب حاجة تانية ماتحط هنا الOutput بتاع الFireBug لما انت بتستخدم الموقع بنفسك ( وأقصد هنا الجزء الذى يتم فية الPOST بالطريقة الصحيحة لا الXSS )
حسنا لكن ساحتاج الى توصيل جهازي لارفع الكود مرة اخرى الى الموقع, سأوافيك لاحقا بما احصل عليه.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ليس هناك اي output خطأ في الـ console على الاطلاق في الصفحة الاصلية.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اقتباسليس هناك اي output خطأ في الـ console على الاطلاق في الصفحة الاصلية.
ولماذا تبحث عن الخطا ما قصدتة أنك تريد محاكاة عملية POST , فلابد من معرفة كيف تعمل هى أساسا ومن هنا كانت فكرة FireBug أو الأدق Live Http Headers
فاذا استطعت محاكاة هذة العملية بالCurl مثلا فهى ممكنة والا فان هناك وسائل للتحقق
هناك شىء مفيد على الأقل عدم وجود شىء فى FireBug معناة عدم وجود Ajax فى الأصل
ولذا فارجو أن تحاول محاكاتة بالCurl أو تضعة هنا- وأقصد ال Headers- لأحاول معك
تعقيب: بخصوص مشكلة قراءة البيانات من على domain آخر غير الذي يوجد عليه السكربت الخاص بالـ AJAX فالحل هنا:
http://jeffreysambells.com/posts/2006/03/0..._ajax_services/
يعمل بصورة رائعة ;)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لدي الآن مشكلة في IE (Class not registered) وتعال يا شاطر اعرف أي class >_<
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
جرب هذا اللينك ستجد في الsource code جافا سكريبت function بها ما تريد لكي تغمل post
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…