رد أياكس طيب في المفتش ، لا يعمل في jquery

0

عندما أقوم بإجراء مكالمة Ajax ، يمكنني رؤية قيمة الاستجابة الصحيحة في مفتش المتصفح. ولكن ، عندما أريد استخدام هذه الاستجابة في شبيبة ، لا أستطيع.

$(document).ready(function(){
    $("button").click(function(){
        var origin = "US";
        var price = "277";
        var currency = "AED";
        var weight = "500";
        var weightCurrency = "gram";
        var count = 1;
        $.ajax({
            url: "http://www.zakoola.com/order/GetCalculatedPrice",
            type: "Post",
            data: { Origin: origin, Price: price, Currency: currency, Weight: weight, WeightCurrency: weightCurrency, Count: count }
            })
            .done(function (res) {
                $("#price").html(res);
            });
    });
});

انا املك h1 علامة بمعرف #price في HTML. الى جانب ذلك ، بدلا من تغيير h1 حاولت النص alert() لإظهار res القيمة ، لكنها لا تعمل. يبدو أن وظيفة الاستجابة لا يتم استدعاؤها مطلقًا ولكن يمكنني رؤية قيمة الاستجابة في المفتش.

Imagen 8120

تحديث 1: يقول وحدة التحكم Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://www.zakoola.com/order/GetCalculatedPrice. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). و .fail يتم استدعاء الدالة مع الإرجاع التالي: {"readyState":0,"status":0,"statusText":"error"}

تحديث 2: فايرفوكس فقط يظهر حمولة الاستجابة بشكل صحيح. Edge & IE ليست كذلك.

2 الاجابة

1
افضل جواب

بالنظر إلى التحديث ، يجب عليك إضافة Access-Control-Allow-Origin رأس الخادم الذي تقوم بتنفيذ الطلب. من MDN

The Access-Control-Allow-Origin response header indicates whether the response can be shared with resources with the given origin.

في هذا العنوان يجب عليك تعيين أصلك ( http://example.com ) أو * .

إذا لم تتمكن من تعديل رؤوس الواجهة الخلفية ، فلن تتمكن من تنفيذ طلبات ajax بهذه الطريقة.

فيما يتعلق بتوافق المتصفح ، راجع هذا ، فربما يكون Firefox أقل من 3.5

:مؤلف
0

يبدو أن هناك مشكلة في CORS في واجهة برمجة التطبيقات التي تستخدمها url: "http://www.zakoola.com/order/GetCalculatedPrice" ، وليس خطأ AJAX. لا يسمح AJAX بتنفيذ الطلب ، إذا لم يتم تحديد الأصل (عنوان url لمنزلك) على جانب واجهة برمجة تطبيقاتك. إذا كنت تتحكم في واجهة برمجة تطبيقات الخادم ، فيمكنك محاولة تعيين جميع رؤوس CORS المطلوبة في واجهة برمجة تطبيقاتك.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام