core-ui-select在重写URL后不起作用

时间:2013-12-21 01:03:46

标签: javascript php jquery ajax

我正在使用jquery插件“core-ui-select”来设置我的表单选择元素。 http://jquery-plugins.net/jquery-coreuiselect-stylize-select-element-with-jquery-and-css

它与此网址完美配合: https://www.ni-dieu-ni-maitre.com/tshirt.php?t=t-shirt-A5770759

但是一旦我使用htaccess重写URL,它就不再起作用了: https://www.ni-dieu-ni-maitre.com/A-5770759/t-shirt/

问题来自哪里?我环顾四周但无法想象。

2 个答案:

答案 0 :(得分:1)

您在AJAX调用中使用相对URL:

$.ajax({
    type: "post",
    url: "tshirt_ajax.php?checkshop=266497&checkproducttype=210&stockcolor=" + $('#productColor5770759').val() + "&currentsize=" + currentsize,
    success: function(data){
        $('select#size').html(data);
        $('#size').coreUISelect();
        $('#quantity').coreUISelect();
    }
});

当网页网址为/tshirt.php时,AJAX网址会转到/tshirt_ajax.php。但是当页面网址为/A-5770759/t-shirt/时,它会转到/A-5770759/t-shirt/tshirt_ajax.php,但这不起作用。由于AJAX调用失败,它永远不会进入success:函数,因此它永远不会调用coreUISelect()

如果您在失败页面上进入Javascript控制台,您应该会看到以下错误消息:

Failed to load resource: the server responded with a status of 404 (Not Found) 
    https://www.ni-dieu-ni-maitre.com/A-5770759/t-shirt/tshirt_ajax.php?checkshop=266497&checkproducttype=210&stockcolor=2&currentsize=3

将网址更改为:

    url: "/tshirt_ajax.php?checkshop=266497&checkproducttype=210&stockcolor=" + $('#productColor5770759').val() + "&currentsize=" + currentsize,

答案 1 :(得分:1)

由于url路径中的额外目录,您的ajax中存在路径问题。由于请求失败,插件永远不会被初始化,因为success回调永远不会触发

您有实际网址:

$.ajax({
    url: "tshirt_ajax.php?...
    .....
});

如果您将其更改为绝对网址将起作用

url: "//www.ni-dieu-ni-maitre.comt/shirt_ajax.php?..."

如果查看浏览器控制台的newtork选项卡,将看到请求的404(未找到)