سؤال

وأنا أحاول لإنشاء طلب وظيفة، للأسف الجسم من وظيفة لا يبدو لإرسالها.

وفيما يلي التعليمات البرمجية التي أنا باستخدام. يتم استدعاء رمز عندما ينقر المستخدم على رابط، وليس شكل زر "إرسال". تشغيله بدون أخطاء، استدعاء بريمج التي يتم استدعاء ولكن، وكما ذكرت سابقا، فإن الجسم من وظيفة لا يبدو لإرسالها.

ويمكنني التحقق من أن نص طلب يتم إرسال أبدا لأن لدي الوصول إلى بريمج يتم استدعاء.

ولقد حاولت استخدام "معلمات" استبدال في ل"requestBody". لقد حاولت ايضا باستخدام سلسلة المعلمة (س = أ؟ ذ = ب). لقد التحقق أيضا أن "ckULK" لا تحتوي على قيمة صالحة.

وأي أفكار؟

new Ajax.Request(sURL,
{
    method: 'POST'
    , contentType: "text/x-json"
    , requestBody: {ulk:ckULK}
    , onFailure:
        function(transport)
        {
            vJSONResp = transport.responseText;
            var JSON = eval( "(" + vJSONResp + ")" );
            updateStatus(JSON.code + ": " + JSON.message);
        } // End onFailure
    , onSuccess: 
        function(transport) 
        {
            if (200 == transport.status)
            {
                vJSONResp = transport.responseText;
            }
            else
            {
                log.value += "\n" + transport.status;
            }
         } // End onSuccess
}); // End Ajax.request
هل كانت مفيدة؟

المحلول

وهذه هي نوع من الحالات التي يكون فيها الحرائق وفايرفوكس هي مفيدة حقا. أقترح عليك تثبيت الحرائق إذا لم يكن لديك والتحقق من الطلب التي يتم إرسالها.

وتحتاج أيضا بالتأكيد على التمسك parameters بدلا من requestBody.

وهذا ما يلي:

new Ajax.Request(sURL,
{
    method: 'POST',
    parameters: 'hello=world&test=yes',
    onFailure: function(transport) {
        vJSONResp = transport.responseText;
        var JSON = eval( "(" + vJSONResp + ")" );
        updateStatus(JSON.code + ": " + JSON.message);
    },
    onSuccess: function(transport) {
        if (200 == transport.status) {
            vJSONResp = transport.responseText;
        } else {
            log.value += "\n" + transport.status;
        }
     }
});

ويجب أن تعمل بالتأكيد.

نصائح أخرى

وببساطة تمرير البيانات كما على parameters لاياكس طلب المنشئ:

new Ajax.Request(url, {
  method: 'POST', 
  parameters: {
    hello: "world", test: "test"
  },
  onSuccess: function(transport){
    var data = transport.responseText.evalJSON();
  }
});

وعندما تصل هذه المشكلة هو الحل لإزالة contentType من خيارات Ajax.Request.

في الإجابة التي كتبها <وأ href = "https://stackoverflow.com/users/16417/paolo-bergantino "لم يتم تعريف> باولو Bergantino contentType في خيارات Ajax.Request.

ومن بارامس أسباب غير معروفة محددة في parameters لم يتم إرسال (لم FF لا تبين لهم ورأى الخادم جسدي وظيفة فارغة).

واقترح أحد زملائي من استخدام postBody بدلا من parameters لكنني لم يحاول ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top