Ajax Url被覆盖

时间:2017-06-02 18:42:45

标签: javascript jquery ruby-on-rails ajax

我正在从rails应用程序进行更改的AJAX请求。该函数是一个非常简单的PUT请求:

function quantityChange(id, val) {
    $.ajax({
        url: 'cart_items/' + id,
        method: "PUT",
        data: {quantity: val},
        success: function() {}
    })
}

我的问题是请求调用的网址是http://localhost:3004/而不是http://localhost:3004/cart_items/:id

我正在使用jQuery 1.9.1并测试了JSBin中的代码片段。一切都按预期工作,但在Rails应用程序中它尝试调用根主机名。如果我将网址更改为cart_items + id而没有正斜杠,则连接和网址几乎正确http:localhost:3004/cart_items:id减去所需的正斜杠。

我不明白为什么在使用此url提供ajax时应用程序默认为根主机名。

Error in console

1 个答案:

答案 0 :(得分:-1)

问题是我需要设置我的CSRF令牌。由于我没有,因此请求被重定向到根主机名。

function quantityChange(id, val) {
    debugger;
    $.ajax({
        url: 'cart_items/' + id,
        type: "PUT",
        data: {quantity: val},
        beforeSend: function(xhr){xhr.setRequestHeader('X-CSRF-Token', 'token');},
        success: function() {}
    })
}