繁体   English   中英

javascript在localhost上有效,但在托管服务器上失败

[英]javascript works on localhost but fails on hosting server

当我单击添加到购物篮按钮时,我在浏览器控制台中看到一条错误消息:

error.png

这是我的basket.js文件:

$(document).ready(function() {


    initBinds();


    function initBinds() {
        if ($('.remove_basket').length > 0) {
            $('.remove_basket').bind('click', removeFromBasket);
        }
        if ($('.update_basket').length > 0) {
            $('.update_basket').bind('click', updateBasket);
        }
        if ($('.fld_qty').length > 0) {
            $('.fld_qty').bind('keypress', function(e) {
                var code = e.keyCode ? e.keyCode : e.which;
                if (code == 13) {
                    updateBasket();
                }
            });
        }
    }


    function removeFromBasket() {
        var item = $(this).attr('rel');
        $.ajax({
            type: 'POST',
            url: '/home/u919084925/public_html/mod/basket_remove.php',
            dataType: 'html',
            data: ({ id: item }),
            success: function() {
                refreshBigBasket();
                refreshSmallBasket();
            },
            error: function() {
                alert('An error has occurred');
            }
        });
    }

    function refreshSmallBasket() {

        $.ajax({
            url: '/home/u919084925/public_html/mod/basket_small_refresh.php',
            dataType: 'json',
            success: function(data) {
                $.each(data, function(k, v) {
                    $("#basket_left ." + k + " span").text(v);
                });
            },
            error: function(data) {
                alert("An error has occurred");
            }
        });

    }

    function refreshBigBasket() {
        $.ajax({
            url: '/home/u919084925/public_html/mod/basket_view.php',
            dataType: 'html',
            success: function(data) {
                $('#big_basket').html(data);
                initBinds();
            },
            error: function(data) {
                alert('An error has occurred');
            }
        }); 
    }


    if ($(".add_to_basket").length > 0) {
        $(".add_to_basket").click(function() {

            var trigger = $(this);
            var param = trigger.attr("rel");
            var item = param.split("_");

            $.ajax({
                type: 'POST',
                url: '/home/u919084925/public_html/mod/basket.php',
                dataType: 'json',
                data: ({ id : item[0], job : item[1] }),
                success: function(data) {
                    var new_id = item[0] + '_' + data.job;
                    if (data.job != item[1]) {
                        if (data.job == 0) {
                            trigger.attr("rel", new_id);
                            trigger.text("Remove from basket");
                            trigger.addClass("red");
                        } else {
                            trigger.attr("rel", new_id);
                            trigger.text("Add to basket");
                            trigger.removeClass("red");
                        }
                        refreshSmallBasket();
                    }
                },
                error: function(data) {
                    alert("An error has occurred");
                }
            });
            return false;

        });
    }

    function updateBasket() {
        $('#frm_basket :input').each(function() {
            var sid = $(this).attr('id').split('-');
            var val = $(this).val();
            $.ajax({
                type: 'POST',
                url: '/home/u919084925/public_html/mod/basket_qty.php',
                data: ({ id: sid[1], qty: val }),
                success: function() {
                    refreshSmallBasket();
                    refreshBigBasket();
                },
                error: function() {
                    alert('An error has occurred');
                }
            });
        });
    }

    // proceed to paypal
    if ($('.paypal').length > 0) {
        $('.paypal').click(function() {

            var token = $(this).attr('id');
            var image = "<div style=\"text-align:center\">";
            image = image + "<img src=\"/images/loadinfo.net.gif\"";
            image = image + " alt=\"Proceeding to PayPal\" />";
            image = image + "<br />Please wait while we are redirecting you to PayPal...";
            image = image + "</div><div id=\"frm_pp\"></div>";

            $('#big_basket').fadeOut(200, function() {
                $(this).html(image).fadeIn(200, function() {
                    send2PP(token);
                });
            });

        });
    }

    function send2PP(token) {
        $.ajax({
            type: 'POST',
            url: '/mod/paypal.php',
            data: ({ token : token }),
            dataType: 'html',
            success: function(data) {
                $('#frm_pp').html(data);
                // submit form automatically
                $('#frm_paypal').submit();
            },
            error: function() {
                alert('An error has occurred');
            }       
        });

});

我试图解决它,但是找不到合适的解决方案。 帮我解决这个问题,我无法理解此错误的原因。

这主要是由于原产地规则(CORS)所致,出于某些原因,javascript(浏览器)认为请求不在同一服务器中。 我认为,这样做的原因是因为/home/u919084925/public_html/mod/basket.php在服务器上没有被视为有效的url,因此应以http:// {hostname} / {path}开头。

看来您的Ajax网址是完全错误的,并且浏览器解释为跨源Ajax请求。 请简单地在浏览器的地址栏中检查您的ajax提供的URL是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM